【问题标题】:How do I create a date-formatted cell using RubyXL?如何使用 RubyXL 创建日期格式的单元格?
【发布时间】:2012-10-27 20:45:38
【问题描述】:

我正在使用 RubyXL 动态生成包含一些日期的电子表格文件。文档有点稀疏,所以我一直在查看源代码,当您调用 change_contents 时,库似乎只有对 DateDateTime 的特殊处理,所以这就是我正在做的事情:

cell = sheet.add_cell_obj RubyXL::Cell.new(sheet, row_index, col_index)
cell.change_contents(Time.now.to_datetime)

当我以这种方式创建电子表格时,Excel 不会将这些单元格格式化为日期。我猜我需要设置一些其他字段,也许是cell.datatype,但我不确定。或者,也许我在叫错树。有人知道该怎么做吗?

【问题讨论】:

    标签: ruby excel openxml rubyxl


    【解决方案1】:

    https://github.com/weshatheleopard/rubyXL/issues/210

    c = workbook[0].add_cell(0,0)
    c.set_number_format('m/d/yy')
    c.change_contents(Date.today)
    

    【讨论】:

    • 这不起作用。我仍在尝试弄清楚如何做到这一点。
    • @RicardoJacas 可以,但您应该确保将 Date 对象插入到单元格中。在我的情况下,有 TimeWithTimezone 对象,所以它只有在我调用 c.change_contents(value.to_date) 时才有效
    • 感谢@GlebTarasov,它在检查正确类型时确实有效。
    【解决方案2】:

    在最终 fork 库并尝试自己修复它之后,我认为 RubyXL 是一团无法修复的烂摊子。幸运的是,在完全陷入疯狂之前,我发现了 Axlsx,这是一个写得更好、积极支持的 Ruby gem。 放弃 RubyXL 并改用 Axlsx。

    【讨论】:

    • 我刚刚继承了一个使用writeexcel gem 的项目。这主要是有缺陷的,因为它不包括电子表格的阅读。因此,我添加了 spreadsheet gem 来执行此操作。不久之后,我需要升级一些东西并进行 gem 清理,所以用 rubyXL 替换了这两个工具。该库可能一团糟,但至少它最终在一个地方解决了我的所有需求(包括 xlsx 支持)。不幸的是,Axlsx 不会这样做,因为它缺乏对 READING 电子表格的支持。 (此外,它还包含大量我根本不需要的高级功能。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-18
    • 2014-02-11
    • 2018-09-28
    • 2010-09-27
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多