Roo Gem检查空工作表

时间:2013-03-29 20:19:23

标签: ruby excel gem

我正在使用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

2 个答案:

答案 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检查。但这很有效。