Parsing XLS Spreadsheet en Rails usando Roo Gem
Estoy tratando de analizar un archivo XLS con la gema roo sin usar un complemento de carga de archivos. Lamentablemente no puedo acceder a los datos del archivo.
Me sale el error:
#<File:0x007ffac2282250> is not an Excel file
So roo no reconoce el archivo como un archivo de Excel. ¿Necesito guardar el archivo localmente para usar roo o hay alguna forma de evitarlo? Me gustaría analizar los datos del archivo de Excel directamente en la base de datos.
Los parámetros que están llegando:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"yLqOpSK981tDNYjKSoWBh0VnFEKSk0XA/wOt3r+yWJc=", "uploadform"=>{"name"=>"xls", "file"=>#<ActionDispatch::Http::UploadedFile:0x007ffac22b6550 @original_filename="cities2.xls", @content_type="application/octet-stream", @headers="Content-Disposition: form-data; name=\"uploadform[file]\"; filename=\"cities2.xls\"\r\nContent-Type: application/octet-stream\r\n", @tempfile=#<File:/var/folders/qn/70msrkt90pd390sdr14_0g2m0000gn/T/RackMultipart20120306-3729-1m2xcsp>>}, "commit"=>"Save Uploadform"}
Estoy intentando acceder al archivo con
if params[:uploadform][:file].original_filename =~ /.*\.xls$/i
oo = Excel.new(params[:uploadform][:file].open)
rooparse(oo)
end
También probé params [: uploadform] [: file] .read y params [: uploadform] [: file] ya, ¡pero creo que .open sería el método correcto aquí!?
¿Y recomendaría usar un clip de papel o carrierwave aquí?
¡Gracias por tu ayuda