ruby-on-rails - 如何用roo打开xls文件

标签 ruby-on-rails excel xls roo

我有一个“.xls”文件,我必须用 roo 打开它,而且必须用 rake 打开它。

这是我的 rake 文件:

require 'roo'
namespace :exel do 

  task open: :environment do

    workbook = Roo::Excel.new("lib/tasks/users.xls") 
    password_length = 6
    password = Devise.friendly_token.first(password_length)
    p password
    username = "#{workbook.row(5)[0]}#{workbook.row(5)[1]}".slice!(0..7).downcase
    p username
    test_user = User.create!(email: 'someone@something.com', 
                 f_name: workbook.row(5)[0], 
                 l_name: workbook.row(5)[1],
                 username: username,
                 validity_date: workbook.row(5)[3],
                 :password => password, 
                 :password_confirmation => password)
    p test_user
  end
end

当我运行 rake:exel 时,我得到一个 Ole::Storage::FormatError: OLE2 signature is invalid 错误。来自 roo gem site我知道 roo 需要 roo-xls gem,我在我的 gemfile run bundle install 上设置了它,但它没有帮助:(

当我将格式更改为 xlsx 时效果很好,但我必须以 .xls 格式打开它,我的想法是我没有正确导入 roo-xls gem。

任何帮助,想法都会很有帮助。

最佳答案

我有解决方案:) 改变:

workbook = Roo::Excel.new("lib/tasks/users.xls")

到:

workbook = Roo::Spreadsheet.open("lib/tasks/users.xls", extension: :xlsx) 

这样我就不必更改文件,因为它将以 xlsx 格式打开,这是适合我的文件,另一方面,代码如下:

workbook = Roo::Excelx.new("lib/tasks/users.xls", extension: :xlsx) 

返回错误:TypeError: lib/tasks/users.xls is not an Excel 2007 file

关于ruby-on-rails - 如何用roo打开xls文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33194427/

相关文章:

python - Pandas to_excel 不写换行符

Excel VBA (UDF) 返回#VALUE!由于 255 个字符的限制

excel - 如何在 Excel 或 Google 表格中组合 if 和 cycle?

java - 使用 JExcel API 更改 XLS 文件的格式

java - jXLS 评估内部变量

ruby-on-rails - ApplicationController,Rails 5 的未定义方法 `helper_method'

ruby-on-rails - 是否可以使用 Capybara Webkit 连接 facebook

ruby-on-rails - 在 Rails 中显示主机和数据库名称

ruby-on-rails - 选择标签的 Rails 验证错误

excel - 在 Excel 中查找范围的第一个非空白单元格的标题索引的公式?