簡體   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