Javascript 使用js xlsx编写日期列

Javascript 使用js xlsx编写日期列,javascript,node.js,excel,xlsx,js-xlsx,Javascript,Node.js,Excel,Xlsx,Js Xlsx,使用我做了几次尝试来编写一个带有日期列的XLSX文件,例如下面的一个。每次,当我使用Excel 2010打开XLSX文件时,日期都不会像我预期的那样呈现:它呈现为来自某个原点的天数。有没有一种方法可以直接呈现日期,而不必在Excel中格式化列 const XLSX = require("xlsx"); var wb = { Sheets: { Sheet1: { '!ref': 'A1:A2', A1: { t:

使用我做了几次尝试来编写一个带有日期列的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
)。我还没有找到另一种格式(但这一种对我来说很好)。

在GitHub上,有一个关于格式化日期的各种方法的详细讨论和解释:

这是一个悬而未决的问题,因此所有问题可能尚未解决

请记住,格式(自纪元起的天数)不是唯一的问题。另一个问题是,新纪元的开始实际上是从不同系统的不同日期开始计算的,这也必须考虑在内