使用js-xlsx我做了几次尝试来编写一个带有日期列的 XLSX 文件,如下所示。每次,当我使用 Excel 2010 打开 XLSX 文件时,日期都不会像我预期的那样呈现:它呈现为来自某个来源的天数。有没有办法直接呈现日期,而不必在 Excel 中格式化列?
const XLSX = require("xlsx");
var wb = {
Sheets: {
Sheet1: {
'!ref': 'A1:A2',
A1: { t: 'd', v: new Date('13 April 2014 00:00 UTC'), w: '2014-04-13' },
A2: { t: 'd', v: new Date('13 April 2014 00:00 UTC'), w: '2014-04-13' }
}
},
SheetNames: [ 'Sheet1' ]
}
XLSX.writeFile(wb, "wbDate.xlsx", {cellDates: true});
编辑:可能的答案
最后我得到一些日期如下:
const XLSX = require("xlsx");
var wb = {
Sheets: {
Sheet1: {
'!ref': 'A1:B2',
A1: { t: 'd', v: '2016-06-21' },
A2: { t: 'd', v: '2016-11-22' },
B1: { t: 'n', v: 42542, z: 'm/d/yy' },
B2: { t: 'n', v: 42696, z: 'm/d/yy' }
}
},
SheetNames: [ 'Sheet1' ]
}
XLSX.writeFile(wb, "wbDate.xlsx", {cellDates: false});
这给出了(Windows 7、Excel 2010、语言环境时间法国比利时):
奇怪的是,格式为m/d/yy
,但输出呈现为d/m/yy
(或dd/mm/yy
?)。我还没有设法获得另一种格式(但这对我来说很好)。