编写有效的Excel文件

时间:2015-10-07 13:37:22

标签: ruby-on-rails excel character-encoding file-writing

我收到了一个端点,它接收带有.xlsx个文件作为附件的电子邮件。我想在我的应用程序中保存这些文件,以便以后可以访问数据。

收到邮件及其附件后 - 其mime_type为application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - 我致电

path = "data/emails/#{attachment.filename}"
File.write(path, attachment.body.decoded)

但是我收到了这个错误:

  

编码:: UndefinedConversionError:“\ x85”从ASCII-8BIT到UTF-8

当我使用添加.force_encoding('utf-8')到解码的主体时,它确实成功,但它写的文件变得无效。我无法正常打开它,也无法访问它的数据。

如何编写普通的Excel文件?

1 个答案:

答案 0 :(得分:2)

这有用吗?

File.open( path, "w+b", 0644 ) { |f| f.write attachment.body.decoded }

从这里采取: https://cbpowell.wordpress.com/2011/01/17/saving-attachments-with-ruby-1-9-2-rails-3-and-the-mail-gem/