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)
但它需要編寫一個臨時文件,我想擺脫的文件系統。
有沒有辦法創建一個虛擬文件?