SheetJS не экспортирует полные десятичные значения

Я пытаюсь экспортировать данные json в файл csv, используя SheetJS. 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, я получаю неполные десятичные значения.


person iPhoneJavaDev    schedule 17.12.2019    source источник


Ответы (1)


Для экспорта 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
person Üsame Tekinkaya    schedule 17.12.2019