70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
# File 'lib/active_import/import_excel.rb', line 70
def parse(&block)
column_mappings = @converter.columns
excelx = false
case File.extname(data_file).downcase
when ".xls"
e = Excel.new(data_file)
when ".xlsx"
excelx = true
e = Excelx.new(data_file)
end
result = (e)
if result.nil?
puts "Could not find header row.".red
return
end
e.default_sheet = result[:sheet]
= result[:row]
= result[:headers]
puts "Reading data from row #{header_row + 1} to #{e.last_row}"
@estimated_rows = e.last_row - ;
row_number = 0
( + 1).upto(e.last_row) do |row|
row_number += 1
import_row = {}
.each_pair do |name, column|
if excelx
value = e.cell(row, column).to_s
else
value = e.cell(row, column).to_s
end
import_row[name] = value
end
yield import_row, @converter, row_number, @estimated_rows
end
end
|