import { useLocal } from "lib/utils/use-local"; import { FC, MouseEvent } from "react"; // import ExcelJS from "exceljs"; export const ExportExcel: FC<{ data: any[]; fileName?: string; }> = ({ data, fileName = "exported_data.xlsx" }): JSX.Element => { const local = useLocal({ data: [] as any[], }); local.data = data; local.render(); const getAllKeys = (arr: Array>): string[] => { const keysSet = new Set(); arr.forEach((obj) => { Object.keys(obj).forEach((key) => keysSet.add(key)); }); return Array.from(keysSet); }; // const handleExport = async (e: MouseEvent) => { // try { // const workbook = new ExcelJS.Workbook(); // const worksheet = workbook.addWorksheet("Sheet 1"); // const columns = getAllKeys(local.data); // worksheet.addRow(columns); // local.data.forEach((row) => { // const values = columns.map((col) => row[col]); // worksheet.addRow(values); // }); // const buffer = await workbook.xlsx.writeBuffer(); // const blob = new Blob([buffer], { // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", // }); // // FileSaver.saveAs(blob, fileName); // console.log("Data exported"); // } catch (error) { // console.error("Error exporting data:", error); // } // }; const handleExport = async (e: MouseEvent) => { try { // const workbook = new ExcelJS.Workbook(); // const worksheet = workbook.addWorksheet("Sheet 1"); // const columns = getAllKeys(local.data); // worksheet.addRow(columns); // local.data.forEach((row) => { // const values = columns.map((col) => row[col]); // worksheet.addRow(values); // }); // const buffer = await workbook.xlsx.writeBuffer(); // const blob = new Blob([buffer], { // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", // }); // const a = document.createElement("a"); // a.href = window.URL.createObjectURL(blob); // a.download = "my-exported-data.xlsx"; // a.click(); console.log("Data exported"); } catch (error) { console.error("Error exporting data:", error); } }; return (
); };