0

我正在使用 axlsx gem 将内容写入 .xlsx 文件。我正在使用以下代码将文件流式传输到浏览器:

  send_data excel_package.to_stream.read, type: "application/xlsx", filename: filename

现在我想为此编写测试用例,并想在我的 rspec 中读取相同的文件。我怎样才能做到这一点 ?我寻找其他可以读取 excel 文件的库,但所有这些库都是从磁盘读取的。

4

1 回答 1

0

该软件包是一个 zip 存档。

您可以做的最简单的事情是将包写入磁盘并使用 RubyZip 加载它,但是如果您希望在没有磁盘 I/O 的情况下一切正常,您可以查看 ruby​​zip 的 InputStream 从 StringIO 加载,https://github.com/ rubyzip/rubyzip/blob/master/lib/zip/input_stream.rb

一旦您有权访问 zip 存档。从那里,您可以使用 Nokogiri 等工具加载要指定的包部分的条目,并根据需要进行断言。

您将在此处找到零件示例列表https://github.com/randym/axlsx/blob/master/test/tc_package.rb#L163

于 2015-03-26T09:08:44.817 回答