Roo::Excelx#each
метод возвращает стандартный Ruby Enumerator:
enum = sheet.each(column_1: 'column_1', column_2: 'column_2')
enum.class # => Enumerator
Таким образом, есть два способа достичь вашей цели:
1) Использовать drop
метод:
enum.drop(1).each do |hash|
# do something with the hash
end
Если вам нужен только второй ряд:
hash = enum.drop(1).first
2) Переместите внутреннюю позицию итератора:
enum.next # move 1 step forward to skip the first row
# continue moving
loop do
hash = enum.next
# do something with the hash
end
Если вам нужен только второй ряд:
enum.next # skip the first row
hash = enum.next # second row
Также учтите:
Существует класс Roo::Excelx::Sheet
, который также представляет рабочий лист и имеет метод each_row
, который получает параметр :offset
.Но, к сожалению, у него нет возможности преобразовать строку в хеш с заданными ключами.
book = Roo::Spreadsheet.open("codes.xlsx")
sheet = book.sheet_for('Sheet1')
sheet.each_row(offset: 1) do |row| # skip first row
# do something with the row
end