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