我正在使用roo gem来解析Excel(xlsx)文件。但是,文件(工作簿)中始终存在一些空白页。在roo中是否有办法查看工作表是否为空或nil
?
更新
wb = Roo::Excelx.new 'chapter_data.xlsx'
wb.sheets.each do |sheet|
wb.default_sheet = sheet
unless wb.nil?
code.....
end
end
wb.nil?
不起作用,返回false。
更新 我能够处理这个问题的唯一方法是拯救no方法错误。我不喜欢这样处理它寻找一种更好的方法来检查工作表是否为空。
begin
header_row = wb.row(1)
rescue NoMethodError => err
# do nothing, this sheet is empty can't find a way to check if it is empty pos
end
答案 0 :(得分:6)
找出检查工作表是否为空的最佳方法。
wb = Roo::Excelx.new 'chapter_data.xlsx'
wb.sheets.each do |sheet|
wb.default_sheet = sheet
if wb.first_row
code.....
end
end
wb.first_row
返回第一个非空行的索引。
答案 1 :(得分:0)
我可以在不使用rescue
的情况下弄清楚如何检查这一点的唯一方法是执行以下操作
unless wb.to_s == 'nil'
code......
end
愚蠢的是我无法定期进行nil
检查。但这很有效。