我需要使用ruby代码读取和写入Excelx文件, 尝试使用电子表格,它不支持xlsx格式, Roo也是读取文件而不是写入xlsx。
是否有任何可写入Excelx的gem /插件?
答案 0 :(得分:18)
对于编写/导出xlsx文件的任务,Axlsx是我发现的功能最齐全的库。但它不支持读取/导入xlsx文件。
https://github.com/randym/axlsx
以下是作者的描述:
xlsx生成图表,图像,自动列宽, 可自定义的样式和完整的架构验证。 Axlsx擅长于 帮助您生成漂亮的Office Open XML电子表格文档 无需了解整个ECMA规范。查看 README的一些例子说明它是多么容易。最重要的是,你可以 在序列化之前验证你的xlsx文件,所以你肯定知道 生成的任何内容都将加载到客户端的计算机上。
答案 1 :(得分:9)
答案 2 :(得分:7)
似乎RubyXL同时执行,读取和写入 https://github.com/gilt/rubyXL 虽然没有使用它..
答案 3 :(得分:2)
添加到上面的宝石列表中,Roo(https://github.com/roo-rb/roo)是一个流行的ruby gem,用于管理和使用excel和xlsx文件。
答案 4 :(得分:1)
XLSX文件本质上是XML文件的压缩集合。如果找不到合适的gem,可以尝试使用Ruby手动生成它们,可能使用从Excel保存的空模板。我们曾经这样做过,工作得很好,遗憾的是代码不是开源的。
但最终,我们需要更多地控制结果的外观,因此我们使用Excel自动化制作了基于.NET的解决方案。
答案 5 :(得分:1)
我发现使用带有excel的WIN32OLE取得了很大的成功。我总是发现自己回到了rubyonwindows.blogspot.com的例子。
答案 6 :(得分:1)
我发现所有现有的ruby excel库的接口都非常类似ruby,在读取文件时确定单元格类型时尤其不准确。
所以,如果你正在寻找更简单的东西,我已经成功地使用了simple_xlsx_reader和simple_xlsx_writer的组合。
我是simple_xlsx_reader的作者,截至撰写本文时,我没有在simple_xlsx_reader中测试断言所有用例来读取由simple_xlsx_writer生成的文件,所以我不能说它完全支持,但是我可以说我已经部署了一个生产应用程序,它使用两个库连续进行各种集成测试,没有问题。
答案 7 :(得分:0)
检查这个gem,我对生成任何困难的格式/布局非常有用 gem'axlsx',github:'randym / axlsx',branch:'master' 并参考文档axlsx-documentation
的这些链接答案 8 :(得分:0)
要导出(csv和xslx)而不包含任何gem,我们可以使用-
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”
对我有用!