3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/simple-spreadsheet/classes/excel_extended.rb', line 3
def foreach(sheet=nil, &block)
sheet = @default_sheet unless sheet
raise ArgumentError, "Error: sheet '#{sheet||'nil'}' not valid" if @default_sheet == nil and sheet==nil
raise RangeError unless self.sheets.include? sheet
if @cells_read[sheet]
raise "sheet #{sheet} already read"
end
worksheet = @workbook.worksheet(sheet_no(sheet))
row_index=1
worksheet.each(0) do |row|
row_content = []
(0..row.size).each do |cell_index|
cell = row.at(cell_index)
next if cell.nil? next if cell.class == Spreadsheet::Formula && cell.value.nil? if date_or_time?(row, cell_index)
vt, v = read_cell_date_or_time(row, cell_index)
else
vt, v = read_cell(row, cell_index)
end
formula = tr = nil col_index = cell_index + 1
font = row.format(cell_index).font
font.extend(ExcelFontExtensions)
row_content << v
end yield(row_content, row_index)
row_index += 1
end end
|