使用旧的 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
结尾