Roo::Excelx#each
方法返回标准 Ruby 枚举器:
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