0

地位:

  • 我有一个简单的新 Ruby On Rails 应用程序
  • 我需要从 MS Excel 以 .xlsx 格式导入一些数据
  • 我通过一个名为“excel”的属性将上传到 ActiveRecord 作为附件编程
  • 我找到了一个应该打开附件的gem调用Roo
  • ...通过:Roo::Excelx.open()命令
  • 然后执行文件的访问部分

问题: Roo::Excel.open()不适用于:

  1. Roo::Excel.open(excel)
  2. Roo::Excel.open(excel.attachment)

执行打开的正确命令是ActiveRecord::Attachment什么?

4

2 回答 2

1

这样做怎么样?

ModelName.excel.open do |file|
 xlsx = Roo::Spreadsheet.open(file)
end
于 2021-04-19T07:50:13.757 回答
1

实际上,我在 Stackoverflow 之外得到了一个答案:

Roo::Spreadsheet.open(ActiveStorage::Blob.service.path_for(excel.key), extension: 'xlsx')

我从 Excel 中加载了一行,因此必须更改代码,但打开它似乎有效!:-)

于 2021-04-20T11:00:21.583 回答