繁体   English   中英

从Ruby读取流中的.xlsx文件

[英]Reading .xlsx file from stream in ruby

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

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

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

该软件包是一个zip存档。

您可以做的最简单的事情是将包写入磁盘并用RubyZip加载,但是,如果您希望所有工作都不需要磁盘I / O,则可以看看rubyzip的InputStream从StringIO加载, 网址为https://github.com/ rubyzip / ruby​​zip / blob / master / lib / zip / input_stream.rb

一旦您可以访问zip存档。 从那里,您可以使用Nokogiri之类的工具加载要指定的软件包零件的条目,并根据需要进行断言。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM