Class: Axlsx::Row

Inherits:
SimpleTypedList
  • Object
show all
Includes:
Accessors, SerializedAttributes
Defined in:
lib/axlsx/workbook/worksheet/row.rb

Overview

Note:

The recommended way to manage rows and cells is to use Worksheet#add_row

A Row is a single row in a worksheet.

See Also:

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from SerializedAttributes

included, #serialized_attributes, #serialized_element_attributes, #serialized_tag

Constructor Details

#initialize(worksheet, values = [], options = {}) ⇒ Row

Creates a new row. New Cell objects are created based on the values, types and style options. 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.

Parameters:

  • worksheet (Worksheet)
  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • values (Array)
  • types (Array, Symbol)
  • style (Array, Integer)
  • escape_formulas (Array, Boolean)
  • height (Float)

    the row's height (in points)

  • offset (Integer)
    • add empty columns before values

See Also:

  • #array_to_cells
  • Cell


33
34
35
36
37
38
39
# File 'lib/axlsx/workbook/worksheet/row.rb', line 33

def initialize(worksheet, values = [], options = {})
  self.worksheet = worksheet
  super(Cell, nil, values.size + options[:offset].to_i)
  self.height = options.delete(:height)
  worksheet.rows << self
  array_to_cells(values, options)
end

Instance Attribute Details

#outline_levelInteger Also known as: outlineLevel

Outlining level of the row, when outlining is on

Returns:

  • (Integer)


59
60
61
# File 'lib/axlsx/workbook/worksheet/row.rb', line 59

def outline_level
  @outline_level
end

#sInteger

The style applied to the row. This affects the entire row.

Returns:

  • (Integer)


64
65
66
# File 'lib/axlsx/workbook/worksheet/row.rb', line 64

def s
  @s
end

#worksheetWorksheet

The worksheet this row belongs to

Returns:



49
50
51
# File 'lib/axlsx/workbook/worksheet/row.rb', line 49

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.

Returns:



99
100
101
102
103
104
# File 'lib/axlsx/workbook/worksheet/row.rb', line 99

def add_cell(value = '', options = {})
  c = Cell.new(self, value, options)
  self << c
  worksheet.send(:update_column_info, self, [])
  c
end

#cellsObject

return cells



139
140
141
# File 'lib/axlsx/workbook/worksheet/row.rb', line 139

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

#escape_formulas=(value) ⇒ Object

Sets escape_formulas for every cell in this row. This determines whether to treat values starting with an equals sign as formulas or as literal strings.

Parameters:

  • value (Array, Boolean)

    The value to set.



123
124
125
126
127
# File 'lib/axlsx/workbook/worksheet/row.rb', line 123

def escape_formulas=(value)
  each_with_index do |cell, index|
    cell.escape_formulas = value.is_a?(Array) ? value[index] : value
  end
end

#heightFloat

Row height measured in point size. There is no margin padding on row height.

Returns:

  • (Float)


53
54
55
# File 'lib/axlsx/workbook/worksheet/row.rb', line 53

def height
  defined?(@ht) ? @ht : nil
end

#height=(v) ⇒ Object

See Also:



130
131
132
133
134
135
136
# File 'lib/axlsx/workbook/worksheet/row.rb', line 130

def height=(v)
  unless v.nil?
    Axlsx.validate_unsigned_numeric(v)
    @custom_height = true
    @ht = v
  end
end

#row_indexInteger

The index of this row in the worksheet

Returns:

  • (Integer)


83
84
85
# File 'lib/axlsx/workbook/worksheet/row.rb', line 83

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

Parameters:

  • r_index (Integer)

    The row index, 0 based.

  • str (String) (defaults to: +''))

    The string this rows xml will be appended to.

Returns:

  • (String)


91
92
93
94
95
# File 'lib/axlsx/workbook/worksheet/row.rb', line 91

def to_xml_string(r_index, str = +'')
  serialized_tag('row', str, r: Axlsx.row_ref(r_index)) do
    each_with_index { |cell, c_index| cell.to_xml_string(r_index, c_index, str) }
  end
end