js 表格导出Excel

依赖包
yarn add js-export-excel
yarn add xlsx


import ExportJsonExcel from 'js-export-excel'
import moment from 'moment';

/*导出到Excel
* columns与表格定义到columns可通用,
* 如导出数据与api返回数据不一致,增加字段renderExcel修改原数据,理论同render,暂只支持参数为原数据
* */
export default function exportExcel(name,data,columns) {
    let option={};

    //文件名,自动加上时间
    const nameDate=moment().format("YYYYMMDDHHMMSS");
    option.fileName = name+nameDate;

    //excel的表头
    let sheetHeader=columns.map(key=>{return key.title});

    //数据格式处理
    let sheetData=[];
    data.map((d,index)=>{
        let row={};
        columns.map(key=>{
            if(key.renderExcel){//renderExcel返回需要导出的实际数据
                row[key.dataIndex]=key.renderExcel(d[key.dataIndex]);
            }else {
                row[key.dataIndex]=d[key.dataIndex];
            }
            return row
        });
        sheetData.splice(index,0,row);
    });

    option.datas=[
        {
            sheetData:sheetData,
            sheetName:'sheet',
            sheetHeader:sheetHeader,
            //sheetFilter:['two','one'],
            //columnWidths: [20, 20]
        }
    ];

    let toExcel = new ExportJsonExcel(option); //new
    toExcel.saveExcel(); //保存
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章