Как преобразовать номер типа ячейки в строку в XLSX? Для обработки формата даты

#javascript #node.js #npm #xlsx

#javascript #node.js #npm #xlsx

Вопрос:

Я использую npm i xlsx для чтения файла xlsx. итак, мои вопросы здесь… в моем листе xlsx я указал стандартную индийскую дату (ДД / ММ / ГГГГ), например, 24/09/2020, поэтому она дает то же значение … если я дам 03/09/2020, это даст номер 43898, подобный этому. установите cellDates:true это дает 2020-03-09T00:00:00.000Z, поэтому здесь дата принимается за месяц.. Я не хочу этого.я хочу ту же строку 03 /09/2020 .. мой код здесь

 var sheet_name_list = workbook.SheetNames; 
var wSheet = workbook.Sheets[sheet_name_list[0]]; 
let xlsxDate = XLSX.utils.sheet_to_json(wSheet, { "defval": null, raw: true });
 xlsxDate.forEach(function (val, index) {
       console.log(val)
 })
  

Ответ №1:

Формат даты в Excel немного отличается. Когда вы вводите значение даты, например «08.09.2020», оно преобразует его в число (например, 43898). Когда вы записываете значение даты в Excel, оно вычислит, сколько дней прошло с 01.01.1900 до заданной даты.

Таким образом, полученное число (43898) — это просто количество дней, прошедших между 01.01.1900 и 09.09.2020.

Отредактируйте свой метод sheet_to_json следующим образом:

XLSX.utils.sheet_to_json(wSheet,{"defval": null, raw:true, dateNF "dd/mm/yyyy"})

В основном вам нужно добавить dateNF : "dd/mm/yyyy" в свои параметры объект.