From 7e30a03672e1ac1ab2e62ea7a51f02ec60fb0723 Mon Sep 17 00:00:00 2001 From: rizrmd Date: Sat, 22 Jun 2024 07:54:47 +0000 Subject: [PATCH] fix --- comps/list/ExportExcel.tsx | 134 ++++++++++++++--------------- comps/list/utils/import-exceljs.ts | 20 ++--- gen/gen_table_list/gen_export.tsx | 26 +++--- 3 files changed, 90 insertions(+), 90 deletions(-) diff --git a/comps/list/ExportExcel.tsx b/comps/list/ExportExcel.tsx index 187c888..bf38cb3 100755 --- a/comps/list/ExportExcel.tsx +++ b/comps/list/ExportExcel.tsx @@ -1,88 +1,88 @@ import { useLocal } from "@/utils/use-local"; import { FC, MouseEvent } from "react"; -import ExcelJS from "exceljs"; +// 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[] + 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)); }); - 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); + }; - return Array.from(keysSet); - }; + // const handleExport = async (e: MouseEvent) => { + // try { + // const workbook = new ExcelJS.Workbook(); + // const worksheet = workbook.addWorksheet("Sheet 1"); - // 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); - // const columns = getAllKeys(local.data); - // worksheet.addRow(columns); + // local.data.forEach((row) => { + // const values = columns.map((col) => row[col]); + // worksheet.addRow(values); + // }); - // local.data.forEach((row) => { - // const values = columns.map((col) => row[col]); - // worksheet.addRow(values); - // }); + // const buffer = await workbook.xlsx.writeBuffer(); - // const buffer = await workbook.xlsx.writeBuffer(); + // const blob = new Blob([buffer], { + // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + // }); - // const blob = new Blob([buffer], { - // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", - // }); + // // FileSaver.saveAs(blob, fileName); - // // FileSaver.saveAs(blob, fileName); + // console.log("Data exported"); + // } catch (error) { + // console.error("Error exporting data:", error); + // } + // }; - // 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 handleExport = async (e: MouseEvent) => { - try { - const workbook = new ExcelJS.Workbook(); - const worksheet = workbook.addWorksheet("Sheet 1"); + // const columns = getAllKeys(local.data); + // worksheet.addRow(columns); - const columns = getAllKeys(local.data); - worksheet.addRow(columns); + // local.data.forEach((row) => { + // const values = columns.map((col) => row[col]); + // worksheet.addRow(values); + // }); - local.data.forEach((row) => { - const values = columns.map((col) => row[col]); - worksheet.addRow(values); - }); + // const buffer = await workbook.xlsx.writeBuffer(); - const buffer = await workbook.xlsx.writeBuffer(); + // const blob = new Blob([buffer], { + // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + // }); - 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(); - 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); + } + }; - console.log("Data exported"); - } catch (error) { - console.error("Error exporting data:", error); - } - }; - - return ( -
- -
- ); - }; \ No newline at end of file + return ( +
+ +
+ ); +}; diff --git a/comps/list/utils/import-exceljs.ts b/comps/list/utils/import-exceljs.ts index cd09b62..3cb6c89 100755 --- a/comps/list/utils/import-exceljs.ts +++ b/comps/list/utils/import-exceljs.ts @@ -1,10 +1,10 @@ -import type * as exceljs from "exceljs"; -export type ExcelJS = typeof exceljs; -const w = window as unknown as { - _exceljs: any; -}; -export const importExcelJs = async (): Promise => { - if (w._exceljs) return w._exceljs; - w._exceljs = await import("exceljs"); - return w._exceljs; -}; +// import type * as exceljs from "exceljs"; +// export type ExcelJS = typeof exceljs; +// const w = window as unknown as { +// _exceljs: any; +// }; +// export const importExcelJs = async (): Promise => { +// if (w._exceljs) return w._exceljs; +// // w._exceljs = await import("exceljs"); +// return w._exceljs; +// }; diff --git a/gen/gen_table_list/gen_export.tsx b/gen/gen_table_list/gen_export.tsx index 4547626..b0642e5 100755 --- a/gen/gen_table_list/gen_export.tsx +++ b/gen/gen_table_list/gen_export.tsx @@ -3,7 +3,7 @@ import { GFCol, createItem, parseGenField } from "../utils"; import { on_load } from "./on_load"; import { codeBuild, codeBuildTest } from "../master_detail/utils"; // import * as Excel from "exceljs"; -import ExcelJS from "exceljs"; +// import ExcelJS from "exceljs"; export const gen_export = async ( modify: (data: any) => void, @@ -52,22 +52,22 @@ export const gen_export = async ( `SELECT ${selectFields} FROM ${tableName};` ); - const workbook = new ExcelJS.Workbook(); - const worksheet = workbook.addWorksheet("Sheet 1"); + // const workbook = new ExcelJS.Workbook(); + // const worksheet = workbook.addWorksheet("Sheet 1"); - const columns = Object.keys(result[0]); - worksheet.addRow(columns); + // const columns = Object.keys(result[0]); + // worksheet.addRow(columns); - result.forEach((row) => { - const values = columns.map((col) => row[col]); - worksheet.addRow(values); - }); + // result.forEach((row) => { + // const values = columns.map((col) => row[col]); + // worksheet.addRow(values); + // }); - const buffer = await workbook.xlsx.writeBuffer(); + // const buffer = await workbook.xlsx.writeBuffer(); - const blob = new Blob([buffer], { - type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", - }); + // const blob = new Blob([buffer], { + // type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + // }); // FileSaver.saveAs(blob, "exported_data.xlsx");