0

使用旧的 Ruby 和 Roo 版本。我正在通过公式导入带有一些自动编译单元格的锁定 .xlsx。当我在我的 SQL 表中使用 Roo 导入时,它也会导入空行,因为具有函数的单元格在编译时由 roo 读取......所以我在数组中有很多空值。有一种方法可以让 roo 忽略空行,而其中一个单元格中只有一个函数?这是模型的代码。谢谢

def import_members(file, current_year)
case File.extname(file.original_filename)
  when '.ods' then
    oo = Roo::OpenOffice.new(file.path, nil, :ignore)
  when '.csv' then
    oo = Roo::CSV.new(file.path)
  when '.xls' then
    oo = Roo::Excel.new(file.path, nil, :ignore)
  when '.xlsx' then
    oo = Roo::Excelx.new(file.path, nil, :ignore)
  else
    raise "Unknown file type: #{file.original_filename}"
end
2.upto(oo.last_row) do |line|
  case oo.cell(line, 4)
    when 'member Type 1' then
      mtid = MemberType.find_by_slug('aadg').id
    when 'member Type 2' then
      mtid = MemberType.find_by_slug('aadg-d').id       
    else
      mtid = nil

  end
  puts "processo #{oo.cell(line, 'A')}"
  self.members << Member.new(
      :surname => oo.cell(line, 5),
      :name => oo.cell(line, 6),
      :sex => oo.cell(line, 7),
      :birth_date => oo.cell(line, 8),
      :birth_city => oo.cell(line, 9),
      :birth_province => oo.cell(line, 10),
      :address => oo.cell(line, 11),
      :zip_code => oo.cell(line, 12),
      :city => oo.cell(line, 13),
      :province => oo.cell(line, 14),
      :member_type_id => mtid,
      year_id: current_year.id
  )
end

结尾

4

0 回答 0