【问题标题】:change XLSX column datatype to number in Angular 5在 Angular 5 中将 XLSX 列数据类型更改为数字
【发布时间】:2021-10-13 15:57:51
【问题描述】:
  1. 我正在使用 xlsx 库导出到 excel ("xlsx": "0.16.1")
  2. 我有三列有千位分隔符,所以当我导出该数据时,它将被视为一个字符串,但我想要数字类型,这里是导出到 Excel 文件的代码

    public downloadExcel(json: any[], excelFileName: string, merges?: any): void {
        let worksheet: XLSX.WorkSheet;
        if (merges) {
            worksheet = XLSX.utils.aoa_to_sheet(json);
            worksheet['!merges'] = merges;
        } else {
            worksheet = XLSX.utils.json_to_sheet(json);
        }
    
        const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };
    
        var fmt = '0'; 
        workbook.Sheets['data']['C2'].z = fmt;
    
        const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
        this.saveAsExcelFile(excelBuffer, excelFileName);
    }
    
    private saveAsExcelFile(buffer: any, fileName: string): void {
        const data: Blob = new Blob([buffer], {
            type: 'application/octet-stream'
        });
        FileSaver.saveAs(data, fileName + "_" + new Date().toLocaleDateString() + "_" + new Date().toLocaleTimeString() + EXCEL_EXTENSION);
    }
    

所以我想改变C,D,E,F列的数据类型,所以我可以直接对那一列求和,

【问题讨论】:

    标签: excel angular5 xlsx


    【解决方案1】:

    在从 JSON 生成 Excel 之前,通过从数字中删除 Comma(,) 来修改 JSON,并将它们转换为如下数字:

    parseInt('10,340'.replace(/,/g, ''))
    

    这样您将存储不带逗号的数字,因此 Excel 会自动将该列视为数字。

    如果您有任何问题,请告诉我。

    ------------编辑------------

    您可以如上所示替换原始数字中的逗号 (,) 并使用列格式 #,##0.00。这样它会在每千个点显示一个逗号,但实际上它将它存储为一个数字,以便您可以进行所有算术运算

    【讨论】:

    • 但我想要千位分隔符,不删除 逗号 我想要 Excel 中的数字数据类型
    • 您可以如上所示替换原始数字中的逗号(,)并使用列格式#,##0.00。这样,它会在每千个点显示逗号,但实际上它将它存储为一个数字,以便您可以进行所有算术运算。
    • 你能给我举个例子吗?
    猜你喜欢
    • 2019-08-23
    • 2021-12-28
    • 2011-12-02
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多