从临时文件 .xlsx 中读取和获取内容

read and get content from tempfile .xlsx

我正在使用 dropzone 向我的控制器发送一个 .xlsx 文件,它通过参数向我发送文件,我得到一个 <ActionDispatch::Http::UploadedFile:0x007fe9f87bb030

我正在尝试在我的控制器中接收和读取它,但它不起作用

def update_activities_with_excel
    file = params[:file].tempfile
    File.open(file, 'r') do |file|

    end
end

file 打印:

#<File:/tmp/RackMultipart20190731-16696-1khug2d.xlsx>

我的参数:

Parameters: {
"file"=>#<ActionDispatch::Http::UploadedFile:0x007fe9f87bb030 
@tempfile=#<Tempfile:/tmp/RackMultipart20190731-16696-1khug2d.xlsx>, 
@original_filename="Actividades.xlsx", 
@content_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", 
@headers="Content-Disposition: form-data; name=\"file\"; 
filename=\"Actividades.xlsx\"\r\n
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\r\n">}

我需要获取它的内容来处理它,我正在使用 axlsx gem

我使用 creek gem

找到了解决方案
file = params[:file]
creek = Creek::Book.new file.tempfile