Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用roo/rails读取Excel文件_Ruby On Rails_Upload_Import From Excel - Fatal编程技术网

Ruby on rails 使用roo/rails读取Excel文件

Ruby on rails 使用roo/rails读取Excel文件,ruby-on-rails,upload,import-from-excel,Ruby On Rails,Upload,Import From Excel,我正在使用rails gem来读取和解析上传的Excel和CSV文件 我知道在roo中,它读取Excel文件的方式是Excel.new(“myfilename”)。我面临的问题,因为我必须阅读上传的文件与形式助手(上传助手),临时文件。在使用roo/Excel读取临时文件之前,我正在保存临时文件。 虽然我上传了好的excel文件,但我得到了 该文件不是Excel/xlsx 错误 有没有办法直接读取上传的IO? 你们能告诉我我做错了什么吗 谢谢 如果在Windows设备上开发,打开文件时,必须在文

我正在使用rails gem来读取和解析上传的Excel和CSV文件

我知道在roo中,它读取Excel文件的方式是
Excel.new(“myfilename”)
。我面临的问题,因为我必须阅读上传的文件与形式助手(上传助手),临时文件。在使用roo/Excel读取临时文件之前,我正在保存临时文件。 虽然我上传了好的excel文件,但我得到了

该文件不是Excel/xlsx

错误

有没有办法直接读取上传的IO? 你们能告诉我我做错了什么吗


谢谢

如果在Windows设备上开发,打开文件时,必须在文件模式中添加“b”(二进制),即:

File.open("spreadsheet.xls","rb")
对于只读,使用二进制

不确定这是否是你的问题,但我也遇到了类似的问题,这就是解决办法


祝你好运

我不熟悉roo,但我用过


实际上我有Excel和xlsx。但是我用Excelx类来读取xlsx文件。问题是读取上传的文件。再加上我有.csv文件,我用ruby类csv来读取。这和csv.parse(Uploded_io.read)很像…但是当我试图用Excel/Excelex类做同样的事情时,它不起作用。你在你期望的位置看到文件了吗?你能手动打开/读取它们吗?你能发布你的代码吗?谢谢rb512…我修复了它..上传时文件被破坏..我没有正确保存。。
workbook = Spreadsheet::ParseExcel.parse("#{Dir.getwd}/public/excel/foo.xls")