0

我正在尝试使用 SheetJS 将 json 数据导出到 csv 文件。json是这样的:

[
    {col1: item1, col2: 1462.47907042},
    {col1: item2, col2: 3327.28233473}
]

导出的功能如下:

public exportToCSV(json: any[], fileName: string): void {
  const workbook: XLSX.WorkBook = XLSX.utils.book_new();
  const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);
  XLSX.utils.book_append_sheet(workbook, worksheet, fileName);
  XLSX.writeFile(workbook, `${fileName}.csv`);
}

但是当它导出到 csv 文件时,小数点不完整。csv 文件显示

col1,col2
item1,1462.47907
item2,3327.282335

为什么 SheetJS 会截断小数点?如何导出完整的十进制值?

* 更新 * 看起来,如果我将数据导出为 .xlsx,我会得到所有的十进制值。但如果我导出为 .csv,我会得到不完整的十进制值。

4

1 回答 1

0

要将 json 导出为 csv 更好地使用“papaparse”(npm install papaparse)然后您可以使用“fs”保存它。按照下面的方式代码。

const papa = require('papaparse');
const fs = require('fs');

const rJson = [
    { col1: 'item1', col2: 1462.47907042 },
    { col1: 'item2', col2: 3327.28233473 }
  ];

const yourPath = `D:\\testjs\\stackoverflow.csv`;
const csv = papa.unparse(rJson);
fs.writeFileSync(yourPath, csv, 'utf8');

这是您的 csv 输出。

col1,col2
item1,1462.47907042
item2,3327.28233473
于 2019-12-17T07:19:55.337 回答