Class: Axlsx::Row
- Inherits:
-
SimpleTypedList
- Object
- SimpleTypedList
- Axlsx::Row
- Includes:
- Accessors, SerializedAttributes
- Defined in:
- lib/axlsx/workbook/worksheet/row.rb
Overview
The recommended way to manage rows and cells is to use Worksheet#add_row
A Row is a single row in a worksheet.
Instance Attribute Summary collapse
-
#outline_level ⇒ Integer
(also: #outlineLevel)
Outlining level of the row, when outlining is on.
-
#s ⇒ Integer
The style applied ot the row.
-
#worksheet ⇒ Worksheet
readonly
The worksheet this row belongs to.
Instance Method Summary collapse
-
#add_cell(value = '', options = {}) ⇒ Cell
Adds a single cell to the row based on the data provided and updates the worksheet's autofit data.
-
#cells ⇒ Object
return cells.
-
#color=(color) ⇒ Object
sets the color for every cell in this row.
-
#height ⇒ Float
Row height measured in point size.
- #height=(v) ⇒ Object
-
#initialize(worksheet, values = [], options = {}) ⇒ Row
constructor
A new cell is created for each item in the values array.
-
#row_index ⇒ Integer
The index of this row in the worksheet.
-
#style=(style) ⇒ Object
sets the style for every cell in this row.
-
#to_xml_string(r_index, str = '') ⇒ String
Serializes the row.
Methods included from SerializedAttributes
#declared_attributes, included, #serialized_attributes, #serialized_element_attributes, #serialized_tag
Constructor Details
#initialize(worksheet, values = [], options = {}) ⇒ Row
A new cell is created for each item in the values array. style and types options are applied as follows: If the types option is defined and is a symbol it is applied to all the cells created. If the types option is an array, cell types are applied by index for each cell If the types option is not set, the cell will automatically determine its type. If the style option is defined and is an Integer, it is applied to all cells created. If the style option is an array, style is applied by index for each cell. If the style option is not defined, the default style (0) is applied to each cell.
30 31 32 33 34 35 36 |
# File 'lib/axlsx/workbook/worksheet/row.rb', line 30 def initialize(worksheet, values=[], ={}) self.worksheet = worksheet super(Cell, nil, values.size) self.height = .delete(:height) worksheet.rows << self array_to_cells(values, ) end |
Instance Attribute Details
#outline_level ⇒ Integer Also known as: outlineLevel
Outlining level of the row, when outlining is on
56 57 58 |
# File 'lib/axlsx/workbook/worksheet/row.rb', line 56 def outline_level @outline_level end |
#s ⇒ Integer
The style applied ot the row. This affects the entire row.
61 62 63 |
# File 'lib/axlsx/workbook/worksheet/row.rb', line 61 def s @s end |
#worksheet ⇒ Worksheet
The worksheet this row belongs to
46 47 48 |
# File 'lib/axlsx/workbook/worksheet/row.rb', line 46 def worksheet @worksheet end |
Instance Method Details
#add_cell(value = '', options = {}) ⇒ Cell
Adds a single cell to the row based on the data provided and updates the worksheet's autofit data.
99 100 101 102 103 104 |
# File 'lib/axlsx/workbook/worksheet/row.rb', line 99 def add_cell(value = '', = {}) c = Cell.new(self, value, ) self << c worksheet.send(:update_column_info, self, []) c end |
#cells ⇒ Object
return cells
130 131 132 |
# File 'lib/axlsx/workbook/worksheet/row.rb', line 130 def cells self end |
#color=(color) ⇒ Object
sets the color for every cell in this row
107 108 109 110 111 |
# File 'lib/axlsx/workbook/worksheet/row.rb', line 107 def color=(color) each_with_index do | cell, index | cell.color = color.is_a?(Array) ? color[index] : color end end |
#height ⇒ Float
Row height measured in point size. There is no margin padding on row height.
50 51 52 |
# File 'lib/axlsx/workbook/worksheet/row.rb', line 50 def height defined?(@ht) ? @ht : nil end |
#height=(v) ⇒ Object
121 122 123 124 125 126 127 |
# File 'lib/axlsx/workbook/worksheet/row.rb', line 121 def height=(v) unless v.nil? Axlsx::validate_unsigned_numeric(v) @custom_height = true @ht = v end end |
#row_index ⇒ Integer
The index of this row in the worksheet
80 81 82 |
# File 'lib/axlsx/workbook/worksheet/row.rb', line 80 def row_index worksheet.rows.index(self) end |
#style=(style) ⇒ Object
sets the style for every cell in this row
114 115 116 117 118 |
# File 'lib/axlsx/workbook/worksheet/row.rb', line 114 def style=(style) each_with_index do | cell, index | cell.style = style.is_a?(Array) ? style[index] : style end end |
#to_xml_string(r_index, str = '') ⇒ String
Serializes the row
88 89 90 91 92 93 94 95 |
# File 'lib/axlsx/workbook/worksheet/row.rb', line 88 def to_xml_string(r_index, str = '') serialized_tag('row', str, :r => r_index + 1) do tmp = '' # time / memory tradeoff, lots of calls to rubyzip costs more # time.. each_with_index { |cell, c_index| cell.to_xml_string(r_index, c_index, tmp) } str << tmp end end |