【问题标题】:Which gem support Import/Export to xlsx file in ruby [closed]哪个 gem 支持在 ruby​​ 中导入/导出到 xlsx 文件 [关闭]
【发布时间】:2011-06-06 08:55:47
【问题描述】:

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

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

【问题讨论】:

标签: ruby excel export-to-excel xlsx


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    我发现使用 WIN32OLE 和 excel 取得了很多成功。例如,我总是回到rubyonwindows.blogspot.com

    【讨论】:

      【解决方案3】:

      【讨论】:

      • 请注意,simple_xlsx_writer“不包含格式或样式”。 writeexcel 写入旧式 xls 文件,而不是 xlsx 格式。
      【解决方案4】:

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

      https://github.com/randym/axlsx

      这是作者的描述:

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

      【讨论】:

      • 我还要补充一点,gem 是 very well documentedactively maintained
      • 该库是只写的,根本不支持读取现有的 xlsx 文件。 :-(
      • @morganchristiansson 你是对的。我没有注意到,因为我只需要写作。很抱歉造成混乱:(
      • Axlsx gem 非常好,似乎功能齐全
      • 这个 gem 似乎不再受支持,最后一个版本是 2015 年。注意它会使您的项目暴露于 ruby​​zip gem 中的漏洞。见github.com/randym/axlsx/issues/536
      【解决方案5】:

      似乎 RubyXL 两者兼而有之,读和写 https://github.com/gilt/rubyXL 不过还没用过。。

      【讨论】:

        【解决方案6】:

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

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

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

        【讨论】:

          【解决方案7】:

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

          【讨论】:

          • 从他们的readme来看,是只读的。
          【解决方案8】:

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

          【讨论】:

            【解决方案9】:

            在没有任何 gem 的情况下导出 (csv & xslx) -

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

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

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

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

            3. 写成-

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

            这对我有用!!!

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-10-04
              • 1970-01-01
              • 2012-05-16
              • 1970-01-01
              • 2012-09-17
              • 1970-01-01
              • 2020-01-03
              相关资源
              最近更新 更多