excel - 在 Angular 5 中将 XLSX 列数据类型更改为数字
问题描述
- 我正在使用xlsx库导出到 excel(“xlsx”:“0.16.1”)
我有三列带有千位分隔符,所以当我导出该数据时,它将被视为一个字符串,但我想要数字类型,这是导出到 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列的数据类型,所以我可以直接对那一列求和,
解决方案
在从 JSON 生成 Excel 之前,通过从数字中删除 Comma(,) 来修改 JSON,并将它们转换为如下数字:
parseInt('10,340'.replace(/,/g, ''))
这样,您将存储不带逗号的数字,因此 Excel 会自动将该列视为数字。
如果您有任何问题,请告诉我。
- - - - - - 编辑 - - - - - -
您可以如上所示替换原始数字中的逗号 (,) 并使用列格式#,##0.00。这样,它会在每千个点显示逗号,但实际上它将它存储为一个数字,以便您可以进行所有算术运算
推荐阅读
- google-sheets - 从两个范围创建摘要
- sas - 如何对 SUM(Case) 进行 SAS 查询并使其在 Teradata SQL 中工作
- javascript - 如何使用 Leaflet 制作线性渐变图例
- c++ - 对所有用户有效的凭据提供程序 V2(磁贴)
- python - Python Chrome 驱动程序在 Safari 网络浏览器上单击阅读器视图
- syntax - PDDL forall 语法
- macos - CSV 下载分为 CSV 和 CSV.part
- apache-nifi - Nifi 处理器中正确的时间格式是什么?
- javascript - Maximo 自动化 yesno 对话框在 7.6.1.1 中失败,但在 7.6.0.9 中失败
- python - Matplotlib x-labels 垂直切割