import { TableTypes } from 'components/business/Table/types'; import { App } from 'utils/types'; // eslint-disable-next-line @typescript-eslint/no-var-requires const ExportTool = require('js-export-excel-react'); interface TableConfig { columns: TableTypes.Column[]; fileName: string; } const exportExcel = (config: TableConfig, data: App.Dict[]) => { const { columns, fileName } = config; const sheetHeader = columns.map((item: TableTypes.Column) => item.title); const sheetKeys = columns.map((item: TableTypes.Column) => item.key); const sheetData = data.map((item: App.Dict) => { const foramtedData = {}; Object.keys(item).forEach((key: string) => { if (sheetKeys.includes(key)) { foramtedData[key] = item[key]; } }); return foramtedData; }); const toExcel = new ExportTool({ fileName, datas: [{ sheetData, sheetHeader, }], }); toExcel.saveExcel(); }; export { // eslint-disable-next-line import/prefer-default-export exportExcel, };