问题描述
状态:
- 我有一个简单的新 Ruby On Rails 应用
- 我需要从 MS Excel 中以 .xlsx 格式导入一些数据
- 我通过名为“excel”的属性将上传到 ActiveRecord 作为附件编程
- 我找到了一个名为
gem
的Roo
,它应该打开附件 - ...通过:
Roo::Excelx.open()
命令 - 然后执行文件的访问部分
问题:
Roo::Excel.open()
不适用于:
Roo::Excel.open(excel)
Roo::Excel.open(excel.attachment)
执行打开 ActiveRecord::Attachment
的正确命令是什么?
解决方法
这个怎么样?
ModelName.excel.open do |file|
xlsx = Roo::Spreadsheet.open(file)
end
,
实际上我在 Stackoverflow 之外得到了一个答案:
Roo::Spreadsheet.open(ActiveStorage::Blob.service.path_for(excel.key),extension: 'xlsx')
我从 Excel 加载了一行,因此必须更改代码,但打开它似乎有效! :-)