列表数据导出成Excel

1、下载xlsx库

npm i xlsx --save

2、项目中引入xlsx库文件

import * as XLSX from ‘xlsx’;

3、定义导出方法

  handleDownload=(dataSource) => {
    // dataSource为需要导出的数据
    
   //  tableColumn为table的表头列
    const tableColumn=[     
    	{title:"列1",dataIndex:'col1',value:1},
    	{title:"列2",dataIndex:'col2',value:2},
    	{title:"列3",dataIndex:'col3',value:3},
    	{title:"列4",dataIndex:'col4',value:4}
    ]
    
    // 自定义下载的header,注意是数组中的数组哦
    const exportCols = tableColumn.filter((item) => !item._ignore);
    const Header = [exportCols.map((item) => item.title)];
    
    //以下是处理导出数据的内容(将datasource中多余的内容去掉,和header的字段要一一对应上)
    const exportArr = dataSource.map((item) => {
      const obj = {};   //定义一个空对象接收处理后的数据
      exportCols.forEach((col) => {
        let value = item[col.dataIndex];
        obj[col.dataIndex] = value;
      });
      return obj;
    });

    // 官方文档中的描述:converts an array of arrays of JS data to a worksheet.
    const headerWs = XLSX.utils.aoa_to_sheet(Header);
    const ws = XLSX.utils.sheet_add_json(headerWs, exportArr, { skipHeader: true, origin: 'A2' });

    /* 新建空workbook,然后加入worksheet */
    const wb = XLSX.utils.book_new();

    // 可以自定义下载之后的sheetname
    XLSX.utils.book_append_sheet(wb, ws, 'sheet1');

    /* 生成xlsx文件 */
    XLSX.writeFile(wb, `excel名称(自定义)${moment().format('YYYY_MM_DD_HH_mm_ss')}.xlsx`);
  };

总结:

使用这个库导出,不会出现一些数字类型字段内容精度丢失问题

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ronychen’s blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值