前端导出Excel 表格(js-export-excel)

**

前端导出Excel 表格(js-export-excel)

**

安装 npm install js-export-excel

封装个方法 DownTable

import ExportJsonExcel from 'js-export-excel';
import Dictionaries from './dictionaries';
//data 为所需要导出的表格数据
//dataTables {key:value} key 为表头数据, value 为每一列data表格的key
//type为区分,后端很多地方使用了type 在取值时做区分使用
const DownTable = (
  data: any[],
  dataTables: {},
  fileName: string = '导出信息',
  type: any = null,
) => {
  console.log('data', data);

  if (data.length == 0) {
    message.error('没有选中数据导出');
    return;
  }
  let option: any = { fileName: '', datas: [] };
  let dataTable = [];
  let header: any[] = [];
  Object.keys(dataTables).forEach((item: any) => {
    header.push(item);
  });

  if (data) {
    for (let i in data) {
      if (data) {
        let obj: any = {};
        //下列Dictionaries 为本地字典查值 如果有值不需要进行本地字典查询 直接使用   obj[item] = data[i][dataTables[item]];
        Object.keys(dataTables).forEach((item: any) => {
          if (dataTables[item] == 'project') {
            obj[item] = Dictionaries.getCascaderName('dict_reg_job', data[i][dataTables[item]]);
          } else if (dataTables[item] == 'source') {
            obj[item] = Dictionaries.getName('dict_source', data[i][dataTables[item]]);
          } else if (dataTables[item] == 'type' && type == 'student') {
            obj[item] = Dictionaries.getName('studentType', data[i][dataTables[item]]);
          } else if (dataTables[item] == 'createTime') {
            obj[item] = moment(data[i][dataTables[item]]).format('YYYY-MM-DD');
          } else {
            obj[item] = data[i][dataTables[item]];
          }
        });
        dataTable.push(obj);
      }
    }
  }
  console.log('dataTable', header);
  option.fileName = fileName; //导出的Excel 文件名
  option.datas = [
    {
      sheetData: dataTable,
      sheetName: 'sheet',
      sheetFilter: header,
      sheetHeader: header, //表头
    },
  ];

  var toExcel = new ExportJsonExcel(option);
  toExcel.saveExcel();
};

export default DownTable;

页面使用

<a
                onClick={() => {
                  DownTable(
                  //所需要导出的数据
                    selectedRowsList,
                    {
                      姓名: 'name',
                      报考岗位: 'project',
                      学员类型: 'type',
                      客户来源: 'source',
                      备注: 'description',
                      咨询时间: 'createTime',
                    },
                    '学员信息',
                    'student',
                  );
                }}
              >
                导出数据
              </a>

导出效果

在这里插入图片描述
在这里插入图片描述

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值