19

我需要使用 ruby​​ 代码读取和写入 Excelx 文件,尝试使用不支持 xlsx 格式的电子表格,Roo 也是读取文件而不写入 xlsx。

是否有任何可以写入 Excelx 的 gem/插件?

4

9 回答 9

20

对于编写/导出 xlsx 文件的任务,Axlsx 是我发现的功能最完整的库。但是,它不支持读取/导入 xlsx 文件。

https://github.com/randym/axlsx

以下是作者的描述:

带有图表、图像、自动列宽、可自定义样式和完整模式验证的 xlsx 生成。Axlsx 擅长帮助您生成精美的 Office Open XML 电子表格文档,而无需了解整个 ECMA 规范。查看 README 中的一些示例,了解它是多么容易。最重要的是,您可以在序列化之前验证您的 xlsx 文件,这样您就可以确定生成的任何内容都会加载到您的客户端机器上。

于 2012-03-20T21:31:10.503 回答
9

你可以试试这个宝石

https://github.com/harvesthq/simple_xlsx_writer

https://github.com/cxn03651/writeexcel/

于 2011-09-03T20:48:12.717 回答
7

似乎 RubyXL 两者都做,读和写 https://github.com/gilt/rubyXL 虽然还没有使用它..

于 2012-07-24T09:23:51.860 回答
3

XLSX 文件本质上是 XML 文件的压缩集合。如果您没有找到合适的 gem,您可以尝试使用 Ruby 手动生成它们,可能使用从 Excel 中保存的空模板。我们曾经这样做过,效果很好,不幸的是代码不是开源的。

但最终,我们需要更多地控制结果的外观,因此我们使用 Excel 自动化制作了基于 .NET 的解决方案。

于 2011-01-10T13:08:35.890 回答
2

添加到上述 gem 的列表中,Roo ( https://github.com/roo-rb/roo ) 是一种流行的 ruby​​ gem,用于管理和处理 excel 和 xlsx 文件。

于 2015-04-23T02:55:57.363 回答
2

我发现使用 WIN32OLE 和 excel 取得了很多成功。我总是在ruby​​onwindows.blogspot.com找到自己的例子。

于 2011-01-10T15:23:05.030 回答
1

我发现所有现有 ruby​​ excel 库的接口都非常不像 ruby​​,在读取文件时确定单元格类型时尤其不准确。

因此,如果您正在寻找(IMO)更简单的东西,我已经成功地使用了simple_xlsx_readersimple_xlsx_writer的组合。

我是 simple_xlsx_reader 的作者,截至撰写本文时,我在 simple_xlsx_reader 中没有测试可以断言读取 simple_xlsx_writer 生成的文件的所有用例,所以我不能说它完全受支持,但我可以说我已经部署了一个生产应用程序,它背靠背地使用这两个库进行各种集成测试,没有问题。

于 2014-03-21T20:33:05.103 回答
0

要在没有任何 gem 的情况下导出(csv 和 xslx),我们可以使用 -

https://gorails.com/episodes/export-to-csv

此链接显示如何导出 csv,下面是我们如何获取 xlsx。

  1. 打开控制器
  2. 查找调用 to_csv 方法的方法,

    send_data @models.to_csv,文件名:“合同-#{Date.today}.csv”

  3. 写成——

    send_data @models.to_csv,文件名:“合同-#{Date.today}.xlsx”

这对我有用!!!

于 2019-01-10T12:36:52.167 回答
0

检查这个 gem,我对于生成任何困难的格式/布局 gem 'axlsx' ,github:'randym/axlsx',分支:'master' 并参考这些链接的文档axlsx-documentation 非常有用

于 2016-07-07T05:02:01.903 回答