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(); //保存
}

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