如何在 Ruby 上打开 base64 电子表格

How to open base64 spreadsheet on Ruby

我一直在尝试操作我从客户那里收到的 base64 编码文件。

我目前正在使用 https://github.com/zdavatz/spreadsheet/blob/master/GUIDE.md 来操作它,但是,似乎没有任何方法可以直接从 base64 blob 打开文件,或者我应该先写入然后从中读取?这不会对服务器造成潜在的安全威胁吗?

例如,如果我收到一个文件:

file = params[:file] with contents:

data:application/vnd.ms-excel;base64,0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAOwADAP7

(我应该删除数据:application/vnd.ms-excel;base64, ?)

我想用这个打开它:

Spreadsheet.client_encoding = 'UTF-8'
book = Spreadsheet.open "#{Rails.root}/app/assets/spreadsheet/event.xls" 

(或使用 blob 或临时文件)

很抱歉,如果它很明显,我已经找了好几个小时,但没有太多可用的信息,先尝试创建一个临时文件,但我认为这不受支持,而且我无法从文档中获得太多信息。

在黑暗中拍摄:也许对其进行解码,写入启用二进制的临时文件,然后将其提供给 Spreadsheet?

tmpfile = Tempfile.new.binmode
tmpfile << Base64.decode64(params[:file])
tmpfile.rewind
book = Spreadsheet.open(tmpfile)