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

问题描述 投票:0回答:1

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

我目前使用的是 https:/github.comzdavatzspreadsheetblobmasterGUIDE.md。 然而,似乎没有任何方法可以直接从base64 blob中打开一个文件,或者我应该先写下它,然后再从它中读取,这不会对服务器造成潜在的安全威胁吗?

例如,如果我收到一个.NET文件,我应该先写一个文件,然后再读。

file = params[:file] with contents:

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

(我是否应该去掉data:applicationvnd.ms-excel;base64,?)

我想用这个打开它。

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

(或者用一个blob或temp fle)

对不起,如果这很明显的话,我找了好几个小时都没有什么信息,我先试着创建一个临时文件,但我觉得不支持,而且我也没有从文档中得到什么。

ruby-on-rails ruby base64 spreadsheet xls
1个回答
0
投票

射在黑暗中。也许可以把它解码,写到二进制的tempfile里,然后再把它输入到... ... Spreadsheet?

tmpfile = Tempfile.new.binmode
tmpfile << Base64.decode64(params[:file])
tmpfile.rewind
book = Spreadsheet.open(tmpfile)
© www.soinside.com 2019 - 2024. All rights reserved.