2013-03-29 2 views
1

Excel (xlsx) 파일을 구문 분석하기 위해 roo gem을 사용하고 있습니다. 그러나 파일에는 항상 빈 시트가 있습니다 (통합 문서). 시트가 비어 있거나 nil인지 알기위한 방법이 있습니까?Roo Gem 빈 워크 시트 확인

업데이트

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를 돌려 작동하지 않습니다.

업데이트 이 문제를 해결할 수있는 유일한 방법은 방법 없음 오류를 구하는 것입니다. 시트가 비어 있는지 확인하는 더 좋은 방법을 찾기 위해 이런 식으로 처리하는 것을 좋아하지 않습니다. 나는 rescue를 사용하지 않고이를 확인하는 방법을 알아낼 수

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 

답변

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은 첫 번째 비어 있지 않은 행의 색인을 반환합니다.

0

유일한 방법은 내가 정기적 nil 검사를 할 수 없다는 것을 다음

unless wb.to_s == 'nil' 
    code...... 
end 

이 바보해야했다. 그러나 이것은 효과적이다.