尝试在 ruby 脚本中使用 roo gem 解析和 XLSX 文件。
在 Excel 中,日期以 DDDDD.ttttt 格式存储为浮点数或整数,从1900-01-00 (00 no 01)
. 因此,为了转换诸如 40396 之类的日期 - 你会得到1900-01-00 + 40396
,你应该得到 2010-10-15,但我得到的是 2010-08-08。
我正在使用 active_support/time 进行计算,如下所示:
Time.new("1900-01-01") + 40396.days
我的计算是错误的还是主动支持中存在错误?
我在 Windows 7 + 最新的 active_support gem (3.2.1) 上运行 ruby 1.9.3-mri
编辑
我在 Excel 中查看带有错误数据的旧文件 - 我的脚本/控制台正在提取正确的数据 - 因此我感到困惑 - 除了使用正确的文件之外,我做的一切都是正确的!!!!该死的通宵达旦!
感谢大家的回复,如果有人需要有关如何使用 ruby 从 excel 转换日期的信息,我会将问题保留在这里。
同样对于遇到此问题的其他任何人-电子表格gem目前不支持正确读取XLSX文件(v 0.7.1)-因此我使用 roo 进行阅读,并使用 axlsx 进行写作。