Class: RubyExcel::Section
- Inherits:
-
Object
- Object
- RubyExcel::Section
- Includes:
- Enumerable, Address
- Defined in:
- lib/rubyexcel/section.rb
Overview
Superclass for Row and Column
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
The Data underlying the Sheet.
-
#sheet ⇒ Object
(also: #parent)
readonly
The Sheet parent of the Section.
Instance Method Summary collapse
-
#cell(ref) ⇒ Object
Access a cell by its index within the Section.
-
#delete ⇒ Object
Delete the data referenced by self.
-
#each ⇒ Object
Yields each value.
-
#each_cell ⇒ Object
Yields each cell.
-
#each_cell_without_headers ⇒ Object
(also: #each_cell_wh)
Yields each cell, skipping headers.
-
#each_without_headers ⇒ Object
(also: #each_wh)
Yields each value, skipping headers.
-
#empty? ⇒ Boolean
Check whether the data in self is empty.
-
#find {|Object| ... } ⇒ String?
Return the address of a given value.
-
#initialize(sheet) ⇒ Section
constructor
Creates a RubyExcel::Section instance.
-
#inspect ⇒ Object
View the object for debugging.
-
#last ⇒ Object
Return the value of the last cell.
-
#last_cell ⇒ RubyExcel::Cell
Return the last cell.
-
#map! ⇒ Object
Replaces each value with the result of the block.
-
#map_without_headers! ⇒ Object
(also: #map_wh!)
Replaces each value with the result of the block, skipping headers.
-
#read(id) ⇒ Object
(also: #[])
Read a value by address.
-
#summarise ⇒ Hash
(also: #summarize)
Summarise the values of a Section into a Hash.
-
#to_s ⇒ Object
The Section as a seperated value String.
-
#write(id, val) ⇒ Object
(also: #[]=)
Write a value by address.
Methods included from Address
#address_to_col_index, #address_to_indices, #col_index, #col_letter, #column_id, #expand, #indices_to_address, #multi_array?, #offset, #row_id, #to_range_address
Constructor Details
#initialize(sheet) ⇒ Section
Creates a RubyExcel::Section instance
24 25 26 27 |
# File 'lib/rubyexcel/section.rb', line 24 def initialize( sheet ) @sheet = sheet @data = sheet.data end |
Instance Attribute Details
#data ⇒ Object (readonly)
The Data underlying the Sheet
16 17 18 |
# File 'lib/rubyexcel/section.rb', line 16 def data @data end |
#sheet ⇒ Object (readonly) Also known as: parent
The Sheet parent of the Section
12 13 14 |
# File 'lib/rubyexcel/section.rb', line 12 def sheet @sheet end |
Instance Method Details
#cell(ref) ⇒ Object
Access a cell by its index within the Section
33 34 35 |
# File 'lib/rubyexcel/section.rb', line 33 def cell( ref ) Cell.new( sheet, translate_address( ref ) ) end |
#delete ⇒ Object
Delete the data referenced by self
41 42 43 |
# File 'lib/rubyexcel/section.rb', line 41 def delete data.delete( self ); self end |
#each ⇒ Object
Yields each value
49 50 51 52 |
# File 'lib/rubyexcel/section.rb', line 49 def each return to_enum(:each) unless block_given? each_address { |addr| yield data[ addr ] } end |
#each_cell ⇒ Object
Yields each cell
68 69 70 71 |
# File 'lib/rubyexcel/section.rb', line 68 def each_cell return to_enum( :each_cell ) unless block_given? each_address { |addr| yield Cell.new( sheet, addr ) } end |
#each_cell_without_headers ⇒ Object Also known as: each_cell_wh
Yields each cell, skipping headers
77 78 79 80 |
# File 'lib/rubyexcel/section.rb', line 77 def each_cell_without_headers return to_enum( :each_cell_without_headers ) unless block_given? each_address( false ) { |addr| yield Cell.new( sheet, addr ) } end |
#each_without_headers ⇒ Object Also known as: each_wh
Yields each value, skipping headers
58 59 60 61 |
# File 'lib/rubyexcel/section.rb', line 58 def each_without_headers return to_enum( :each_without_headers ) unless block_given? each_address( false ) { |addr| yield data[ addr ] } end |
#empty? ⇒ Boolean
Check whether the data in self is empty
87 88 89 |
# File 'lib/rubyexcel/section.rb', line 87 def empty? each_wh.all? { |val| val.to_s.empty? } end |
#find {|Object| ... } ⇒ String?
Return the address of a given value
98 99 100 101 |
# File 'lib/rubyexcel/section.rb', line 98 def find return to_enum( :find ) unless block_given? each_cell { |ce| return ce.address if yield ce.value }; nil end |
#inspect ⇒ Object
View the object for debugging
107 108 109 |
# File 'lib/rubyexcel/section.rb', line 107 def inspect "#{ self.class }:0x#{ '%x' % (object_id << 1) }: #{ idx }" end |
#last ⇒ Object
Return the value of the last cell
115 116 117 |
# File 'lib/rubyexcel/section.rb', line 115 def last last_cell.value end |
#last_cell ⇒ RubyExcel::Cell
Return the last cell
125 126 127 |
# File 'lib/rubyexcel/section.rb', line 125 def last_cell Cell.new( sheet, each_address.to_a.last ) end |
#map! ⇒ Object
Replaces each value with the result of the block
133 134 135 136 |
# File 'lib/rubyexcel/section.rb', line 133 def map! return to_enum( :map! ) unless block_given? each_address { |addr| data[addr] = ( yield data[addr] ) } end |
#map_without_headers! ⇒ Object Also known as: map_wh!
Replaces each value with the result of the block, skipping headers
142 143 144 145 |
# File 'lib/rubyexcel/section.rb', line 142 def map_without_headers! return to_enum( :map_without_headers! ) unless block_given? each_address( false ) { |addr| data[addr] = ( yield data[addr] ) } end |
#read(id) ⇒ Object Also known as: []
Read a value by address
154 155 156 |
# File 'lib/rubyexcel/section.rb', line 154 def read( id ) data[ translate_address( id ) ] end |
#summarise ⇒ Hash Also known as: summarize
Summarise the values of a Section into a Hash
165 166 167 |
# File 'lib/rubyexcel/section.rb', line 165 def summarise each_wh.inject( Hash.new(0) ) { |h, v| h[v]+=1; h } end |
#to_s ⇒ Object
The Section as a seperated value String
174 175 176 |
# File 'lib/rubyexcel/section.rb', line 174 def to_s to_a.map { |v| v.to_s.gsub(/\t|\n|\r/,' ') }.join ( self.is_a?( Row ) ? "\t" : "\n" ) end |
#write(id, val) ⇒ Object Also known as: []=
Write a value by address
185 186 187 188 |
# File 'lib/rubyexcel/section.rb', line 185 def write( id, val ) data[ translate_address( id ) ] = val end |