ошибка гема электронной таблицы при доступе к нескольким листам файла Excel - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь получить доступ к нескольким листам файла Excel одновременно и сталкиваюсь с проблемой, ниже приведен код

sheetname1 ="sheet1"
sheetname1 ="sheet2"
book = Spreadsheet.open(file_name)

sheet1 = book.worksheets.find { |sheet| sheet.name == sheetname1 } 
sheet2 = book.worksheets.find { |sheet| sheet.name == sheetname2 } 
5.upto(sheet2.rows.count) do |findrownum|
  0.upto(sheet2.column_count) do |findcolnum|
  end
end

ошибка, которую я получаю, не знаю, почему она не может прочитать sheet2

NoMethodError: undefined method `rows' for nil:NilClass

1 Ответ

0 голосов
/ 29 августа 2018

UPDATE:

глупая ошибка, вы не взяли sheetname2 переменную, проверьте код:

sheetname1 ="sheet1"
sheetname1 ="sheet2" # should be sheetname2

NoMethodError: неопределенный метод "rows" для nil: NilClass

ошибка чтения правильно, ваш sheet2 кажется nil

Вы можете получить доступ к рабочему листу с помощью index или name

например:

  sheet1 = book.worksheets sheetname1
  sheet2 = book.worksheets sheetname2

  # to avoid above error, you can add if condition to check
  if sheet2
    5.upto(sheet2.rows.count) do |findrownum|
      0.upto(sheet2.column_count) do |findcolnum|
      end
    end
  end

для получения дополнительной информации: https://github.com/zdavatz/spreadsheet/blob/master/GUIDE.md#reading-is-easy

...