【发布时间】:2012-05-20 13:07:00
【问题描述】:
尝试在 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 进行写入。
【问题讨论】:
标签: ruby-on-rails ruby excel date activesupport