SheetJS导出Excel的时候如何导出日期与数值类型格式

管理员 2021-09-11
0 95
SheetJS导出Excel的时候如何导出日期与数值类型格式

主要思路是修改后端传过来的数据类型

代码举例:

this.$http.post("merchant:/api/operator/sundry-charge/export-excel", this.searchForm).then((response) => {
    this.listLoading = false;
    let workbook = XLSX.utils.book_new();
    //response.data.items是二维数组,后台传过来的 [ [],[],[],[] ]
    let rows = [];//这里一定要新申明一个变量,直接用response.data.items导出有问题不知道为什么??
    response.data.items.forEach((r, k) => {
        if (k !== 0) {
            r[8] = parseFloat(r[8]);//该列数据数值类型
            r[9] = parseInt(r[9]);//该列数据数值类型
            r[10] = parseFloat(r[10]);//该列数据数值类型
            r[11] = new Date(r[11]);//该列数据日期类型 后台传过来的是:2021-09-11 12:00:00
            r[12] = new Date(r[12]);//该列数据日期类型 后台传过来的是:2021-09-11 12:00:00
        }
        rows.push(r);
    });
    let worksheet = XLSX.utils.aoa_to_sheet(rows, {
        skipHeader: true,
        dateNF: 'YYYY-MM-DD HH:mm:ss' //设置日期的导出格式
    });
    if (!worksheet['!cols']) worksheet['!cols'] = new Array(rows[0].length);
    //设置导出列宽
    worksheet['!cols'][10] = {wch: 22};
    worksheet['!cols'][11] = {wch: 22};
    worksheet['!cols'][12] = {wch: 22};
    XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1");
    XLSX.writeFile(workbook, '二维码收费记录.xlsx');
}).catch((e) => {
    this.listLoading = false;
    throw e;
});
回复
  • 消灭零回复