1

我需要操作从电子邮件附件中读取的 xls 文件。由于性能原因,我需要使用 Roo gem。这里的问题是将附件传递给 Roo。电子表格 gem 可以直接读取 StringIO,但 Roo 似乎没有这种能力。(有没有办法让 Roo 接受 StringIO 对象代替文件?

我找到了这个解决方案

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)

但这涉及将临时文件写入我想摆脱的文件系统。

有没有办法创建一个虚拟文件?

4

1 回答 1

1

没有更好的方法可以使用 Roo 从电子邮件附件中打开 Excel。

于 2014-08-27T21:57:01.737 回答