exceljs读取具有格式的日期单元格



当我使用exceljs包从excel文件中的列中读取Date值时,我遇到了一个问题,我无法获得正确格式的真值,比如Date数据类型,而是得到了一个数字。

我的项目是用Nest构建的,我使用exceljs来写/读xlsx文件,代码是:

worksheet.eachRow({ includeEmpty: true }, (row, rowNumber) => {
row.eachCell((cell, colNumber) => {
...
const header = headers[colNumber - 1];
switch (header) {
...
case 'dateColumn':
// Date format is dd/mm/yyyy
// Original value in excel is '16/06/2020'
const cellValue: Date = cell.value as Date; // When i get value from cell is 43998
console.log(cellValue); // print 43998
break;
...
}
}

单元格格式为"dd/mm/yyyy">

您需要将Excel日期序列号转换为JS日期。

这里有一个非常基本的例子:

const date0 = new Date(0);
const utcOffset = date0.getTimezoneOffset();
const cellValue = new Date(0, 0, cell.value - 1, 0, -utcOffset, 0);

要将Excel序列日期转换为正常值,可以使用

new Date(Date.UTC(0, 0, cell.value - 1, 0, 0, 0))

相关内容

  • 没有找到相关文章

最新更新