javascript - 使用 js-xlsx 编写日期列

标签 javascript node.js excel xlsx js-xlsx

使用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、区域设置时间法国比利时):

enter image description here

奇怪的是,格式为 m/d/yy ,但输出呈现为 d/m/yy (或dd/mm/yy?)。我还没有设法获得另一种格式(但这个格式对我来说很好)。

最佳答案

GitHub 上的本期对各种格式化日期的方法进行了长时间的讨论和解释:

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

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

关于javascript - 使用 js-xlsx 编写日期列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41342929/

相关文章:

javascript - backbone.js 应用程序 jquery ajaxsetup 在切换 View 时并不总是有效

javascript - jqgrid 的 groupingGroupBy 函数中可以更改哪些选项?

javascript - 如何使用 PHP 打开 Bootstrap 模式?

node.js - Puppeteer 无法导航到 url (ERR_EMPTY_RESPONSE)

excel - 对非连续命名范围进行平均

R导入excel表,单元格a1成为新列中的行值

javascript - css 媒体查询请求后刷新 jQuery 插件

node.js - 向 Error 对象添加属性时出现 Typescript 错误 "Property ... does not exist on type ' Error'"

javascript - 路由整个文件夹及其内容

excel - 我一直在用 'Run time error 13'来获得 'mydate = Sheets(“Summary”).Cells(i, “A”).Value'