2014-01-24 126 views
1

我需要操縱從電子郵件附件中讀取的xls文件。由於性能原因,我需要使用Roo寶石。這裏的問題是將附件傳遞給Roo。電子表格寶石可以直接讀取StringIO,但Roo似乎沒有這種功能。 (Is there any way to get Roo to accept StringIO objects in place of files?用roo打開電子郵件附件

我發現這個解決方案

attachment = mail.attachments.first 
file = Tempfile.new(['attachment', '.xls'], :encoding => 'ascii-8bit') 
file.write StringIO.new(attachment.body.decoded).read 
excel = Roo::Excel.new(file.path) 

但它需要編寫一個臨時文件,我想擺脫的文件系統。

有沒有辦法創建一個虛擬文件?

回答

1

沒有更好的方法來打開從Roo電子郵件附件的Excel。