Method: Bmg::Reader::Excel#each

Defined in:
lib/bmg/reader/excel.rb

#eachObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/bmg/reader/excel.rb', line 19

def each
  return to_enum unless block_given?

  headers = type.attrlist
  headers = headers[1..-1] if generate_row_num?
  start_at = @options[:skip] + 2
  end_at = spreadsheet.last_row
  (start_at..end_at).each do |i|
    row = spreadsheet.row(i)
    init = init_tuple(i - start_at + 1)
    tuple = (0...headers.size).each_with_object(init){|i,t|
      t[headers[i]] = row[i]
    }
    yield(tuple)
  end
end