Class: Princess::ExcelReader

Inherits:
Object
  • Object
show all
Defined in:
lib/princess/excel_reader.rb

Instance Method Summary collapse

Constructor Details

#initialize(filename, default_sheet = 0) ⇒ ExcelReader

Returns a new instance of ExcelReader.



4
5
6
7
# File 'lib/princess/excel_reader.rb', line 4

def initialize(filename, default_sheet = 0)
  @book = Spreadsheet.open(filename)
  @sheet = @book.worksheet(default_sheet)
end

Instance Method Details

#active_sheet(sheet_num) ⇒ Object

load a sheet for reading



10
11
12
13
# File 'lib/princess/excel_reader.rb', line 10

def active_sheet(sheet_num)
  raise 'invalid argument' if !sheet_num.is_a?(Integer)
  @sheet = @book.worksheet(sheet_num)
end

#cell(coord) ⇒ Object

return the specified cell content



29
30
31
# File 'lib/princess/excel_reader.rb', line 29

def cell(coord)
  row(coord.scan(/\d+/).first.to_i).cell(coord.scan(/\D+/).first)
end

#eachObject

iterate through the spreadsheet rows



16
17
18
19
20
# File 'lib/princess/excel_reader.rb', line 16

def each
  @sheet.each do |row|
    yield Row.new(row.inject([]){|vals, cell|vals<<cell})
  end
end

#row(num) ⇒ Object

return the specified row



23
24
25
26
# File 'lib/princess/excel_reader.rb', line 23

def row(num)
  raise 'invalid argument' if !num.is_a?(Integer)
  Row.new(@sheet.row(num - 1).inject([]) {|vals, cell| vals << cell})
end