【发布时间】:2011-06-06 08:55:47
【问题描述】:
我需要用 ruby 代码读写 Excelx 文件, 尝试使用电子表格它不支持 xlsx 格式, Roo也是读取文件而不是写入xlsx。
是否有任何可以写入 Excelx 的 gem/插件?
【问题讨论】:
-
另见a list of related libraries的Ruby工具箱。
标签: ruby excel export-to-excel xlsx
我需要用 ruby 代码读写 Excelx 文件, 尝试使用电子表格它不支持 xlsx 格式, Roo也是读取文件而不是写入xlsx。
是否有任何可以写入 Excelx 的 gem/插件?
【问题讨论】:
标签: ruby excel export-to-excel xlsx
XLSX 文件本质上是 XML 文件的压缩集合。如果您没有找到合适的 gem,您可以尝试使用 Ruby 手动生成它们,可能使用从 Excel 中保存的空模板。我们曾经这样做过,效果很好,不幸的是代码不是开源的。
但最终,我们需要对结果的外观进行更多控制,因此我们使用 Excel 自动化制作了基于 .NET 的解决方案。
【讨论】:
我发现使用 WIN32OLE 和 excel 取得了很多成功。例如,我总是回到rubyonwindows.blogspot.com。
【讨论】:
【讨论】:
simple_xlsx_writer“不包含格式或样式”。 writeexcel 写入旧式 xls 文件,而不是 xlsx 格式。
对于编写/导出 xlsx 文件的任务,Axlsx 是我发现的功能最完整的库。但它不支持读取/导入 xlsx 文件。
https://github.com/randym/axlsx
这是作者的描述:
带有图表、图像、自动列宽的 xlsx 生成, 可定制的样式和完整的模式验证。 Axlsx 擅长于 帮助您生成精美的 Office Open XML 电子表格文档 无需了解整个 ECMA 规范。退房 自述文件中的一些示例说明了它是多么容易。最重要的是,你可以 在序列化之前验证您的 xlsx 文件,以便您确定 生成的任何内容都将加载到您的客户端计算机上。
【讨论】:
似乎 RubyXL 两者兼而有之,读和写 https://github.com/gilt/rubyXL 不过还没用过。。
【讨论】:
我发现所有现有的 ruby excel 库的接口都非常不像 ruby,在读取文件时确定单元格类型时尤其不准确。
所以,如果您正在寻找(IMO)更简单的东西,我已经成功地使用了 simple_xlsx_reader 和 simple_xlsx_writer 的组合。
我是 simple_xlsx_reader 的作者,截至撰写本文时,我没有在 simple_xlsx_reader 中进行测试来断言读取由 simple_xlsx_writer 生成的文件的所有用例,所以我不能说它完全受支持,但是我可以说我已经部署了一个生产应用程序,它背靠背使用这两个库进行各种集成测试,没有问题。
【讨论】:
除了上述 gem 列表之外,Roo(https://github.com/roo-rb/roo) 是一种流行的 ruby gem,用于管理和处理 excel 和 xlsx 文件。
【讨论】:
检查这个 gem,我对于生成任何困难的格式/布局非常有用 宝石'axlsx',github:'randym/axlsx',分支:'master' 并参考这些链接以获取 Documentationaxlsx-documentation
【讨论】:
在没有任何 gem 的情况下导出 (csv & xslx) -
https://gorails.com/episodes/export-to-csv
此链接显示如何以 csv 格式导出,下面是我们如何获取 xlsx。
找到调用to_csv方法的方法,
send_data @models.to_csv,文件名:“Contract-#{Date.today}.csv”
写成-
send_data @models.to_csv,文件名:“Contract-#{Date.today}.xlsx”
这对我有用!!!
【讨论】: