当前位置: 首页 > 知识库问答 >
问题:

typescript - xlsx 如何导出 表头分组的数据,exportExcel 只写出了单行的导出?

邵弘义
2023-08-26
const headerData = [  {    title: '分组一',    children: [      {        title: '今年',        dataIndex: 'ND',        key: 'ND',        width: 140,        showSorterTooltip: false,        align: 'center',        sorter: false      },      {        title: '明年',        dataIndex: 'GLDW1',        key: 'GLDW1',        width: 140,        showSorterTooltip: false,        align: 'center',        sorter: false      }    ],    editable: true  },  {    title: '日期',    dataIndex: 'GLDW2',    key: 'GLDW2',    width: 140,    showSorterTooltip: false,    align: 'center',    sorter: false,    editable: true  }];const datas = [  {    PK_UID: 1,    GLDW1: '1',    GLDW2: '',    GLDW3: '',    ZQ: '1',    TBQS: '02',    LD_QS: '1',    TDSYQS: '1',    LMSYQS: '1',    LMQS: '1',    LQZBL: '1',    LD_QML: 1,    LD_ZL: 1,    LD_SLD: 1,    LD_GTG: 1,    LD_QTG: 1,    LD_WCL: 1,    LD_WLM: 1,    LD_MPD: 1,    BHYY: '1',    BZ: '1',    TBRY: '1',    TBID: '1',    ND: '2023',    GLDW1_DESC: '1',    GLDW2_DESC: '',    GLDW3_DESC: '',    ZQ_DESC: '1',    TBQS_DESC: '2期',    LD_QS_DESC: '国有',    TDSYQS_DESC: '国有',    LMSYQS_DESC: '国有',    LMQS_DESC: '国有',    LQZBL_DESC: '办理'  }];
/** 导出 Excel 表格 可过滤不需要的字段 */export const exportExcel = (  headerData: Record<string, any>[],  dataSource: Record<string, any>[],  xlsxName: string,  filterHeader: string[] = [],) => {  const optionKey = getTableActions().dataIndex;  const filterFields = [optionKey, ...filterHeader];  // 过滤表头不需要的字段  const filteredHeaderData = headerData.filter((item) => {    // 如果需要保留该字段,返回 true;否则返回 false    return !filterFields.includes(item.dataIndex);  });  // 将 filteredHeaderData 中的 dataIndex 提取为表头数组  const headers = filteredHeaderData.map((item) => item.title);  // 将 datas 中的数据转换为二维数组  const dataRows = dataSource.map((data) =>    filteredHeaderData.map((item) => {      return data[`${item.dataIndex}_DESC`] || data[`${item.dataIndex}`];    }),  );  // 创建一个新的工作簿  const workbook = XLSX.utils.book_new();  // 创建一个工作表  const worksheet = XLSX.utils.aoa_to_sheet([headers, ...dataRows]);  // 将工作表添加到工作簿  XLSX.utils.book_append_sheet(workbook, worksheet);  // 导出Excel文件  const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });  const excelData = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });  saveAs(excelData, xlsxName);};

共有1个答案

魏宏邈
2023-08-26

如何可以换库的话,可以看下 https://segmentfault.com/a/1190000043880081 这个是不是你想要的

 类似资料:
  • 我的问题是,当我单击按钮导出数据表时,它只导出列标题,我的 excel 文件生成时没有行。 我使用的是普里米斯5.3并试图使用apache poi 3.8和3.10-FINAL,但两者都不工作的权利。 在日志中我没有错误。 编辑:我已经知道发生了什么。问题是,当我的表加载时,它是空的,但看起来像将其导出到 excel 的按钮,保持某种缓存,表为空,即使在我将数据加载到表中后,按钮也会继续导出 ex

  • 假设,我报告中有一个表,表头很复杂,如下所示 当我使用Jasper Reports Server将它导出到xls或xlsx时,它会按如下方式打印(Excel 2010): 高度应等于+高度 环境:Jasper Reports Server CE 4.5.1,试用了最新版本(5.0.4)-相同(sad)结果 有人知道什么办法吗?

  • 通过对数据表的导入导出,可以实现 MySQL 数据库服务器与其它数据库服务器间移动数据。导出是指将 MySQL 数据表的数据复制到文本文件。数据导出的方式有多种,本节主要介绍使用 SELECTI...INTO OUTFILE 语句导出数据。 在 MySQL 中,可以使用 SELECTI...INTO OUTFILE 语句将表的内容导出成一个文本文件。SELECT...INTO OUTFILE 语句

  • 本文向大家介绍深入分析Mongodb数据的导入导出,包括了深入分析Mongodb数据的导入导出的使用技巧和注意事项,需要的朋友参考一下 一、Mongodb导出工具mongoexport Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。 mongoexport具体用法 参数说明

  • 尝试以这种方式导出socket.io时,获取错误。 我的tsconfig.client.json文件具有以下设置: