Class: RobustExcelOle::Range

Inherits:
REOCommon show all
Defined in:
lib/robust_excel_ole/range.rb

Instance Method Summary collapse

Methods inherited from REOCommon

#excel, #own_methods, puts_hash, tr1, trace

Constructor Details

#initialize(win32_range) ⇒ Range

Returns a new instance of Range.



6
7
8
# File 'lib/robust_excel_ole/range.rb', line 6

def initialize(win32_range)
  @range = win32_range
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(id, *args) ⇒ Object

:nodoc: #



34
35
36
# File 'lib/robust_excel_ole/range.rb', line 34

def method_missing(id, *args)  # :nodoc: #
  @range.send(id, *args)
end

Instance Method Details

#[](index) ⇒ Object



29
30
31
32
# File 'lib/robust_excel_ole/range.rb', line 29

def [] index
  @cells = []
  @cells[index + 1] = RobustExcelOle::Cell.new(@range.Cells.Item(index + 1))
end

#eachObject



10
11
12
13
14
# File 'lib/robust_excel_ole/range.rb', line 10

def each
  @range.each do |row_or_column|
    yield RobustExcelOle::Cell.new(row_or_column)
  end
end

#values(range = nil) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/robust_excel_ole/range.rb', line 16

def values(range = nil)
#+#      result = self.map(&:value).flatten
  result = self.map{|x| x.value}.flatten
#+#      range ? result.each_with_index.select{ |row_or_column, i| range.include?(i) }.map{ |i| i[0] } : result
  if range 
    relevant_result = []
    result.each_with_index{ |row_or_column, i| relevant_result << row_or_column if range.include?(i) }
    relevant_result 
  else
    result
  end
end