Class: ExcelAbstraction::Sheet
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- ExcelAbstraction::Sheet
- Defined in:
- lib/excel_templating/excel_abstraction/sheet.rb
Instance Attribute Summary collapse
-
#active_cell_reference ⇒ Object
readonly
Returns the value of attribute active_cell_reference.
Instance Method Summary collapse
-
#cell(value, format: nil, type: :auto, **options) ⇒ Object
Fills the cell at the current pointer with the value and format or options specified.
- #cells(array, **options) ⇒ Object
- #header(value, **options) ⇒ Object
- #headers(array, options = {}) ⇒ Object
-
#initialize(sheet, workbook) ⇒ Sheet
constructor
A new instance of Sheet.
- #merge(length, value, options = {}) ⇒ Object
-
#next_row ⇒ Object
Advance the pointer to the next row.
-
#style_col(col, width: nil, format: {}, level: 0, collapse: 0, hidden: nil) ⇒ Object
Style the numbered column.
- #style_row(row, properties = {}) ⇒ Object
Constructor Details
#initialize(sheet, workbook) ⇒ Sheet
Returns a new instance of Sheet.
5 6 7 8 9 |
# File 'lib/excel_templating/excel_abstraction/sheet.rb', line 5 def initialize(sheet, workbook) super(sheet) @workbook = workbook @active_cell_reference = ExcelAbstraction::ActiveCellReference.new end |
Instance Attribute Details
#active_cell_reference ⇒ Object (readonly)
Returns the value of attribute active_cell_reference.
3 4 5 |
# File 'lib/excel_templating/excel_abstraction/sheet.rb', line 3 def active_cell_reference @active_cell_reference end |
Instance Method Details
#cell(value, format: nil, type: :auto, **options) ⇒ Object
Fills the cell at the current pointer with the value and format or options specified
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/excel_templating/excel_abstraction/sheet.rb', line 25 def cell(value, format: nil, type: :auto, **) format = format || _format() value = Float(value) if value.is_a?(ExcelAbstraction::Time) || value.is_a?(ExcelAbstraction::Date) writer = case type when :string then method(:write_string) else method(:write) end writer.call(active_cell_reference.row, active_cell_reference.col, value, format) if [:new_row] next_row else active_cell_reference.right end self end |
#cells(array, **options) ⇒ Object
50 51 52 53 |
# File 'lib/excel_templating/excel_abstraction/sheet.rb', line 50 def cells(array, **) Array(array).each { |value| cell(value, **) } self end |
#header(value, **options) ⇒ Object
11 12 13 14 |
# File 'lib/excel_templating/excel_abstraction/sheet.rb', line 11 def header(value, **) cell(value, **{bold: 1}.merge()) self end |
#headers(array, options = {}) ⇒ Object
16 17 18 19 |
# File 'lib/excel_templating/excel_abstraction/sheet.rb', line 16 def headers(array, = {}) Array(array).each { |element| header(element, ) } self end |
#merge(length, value, options = {}) ⇒ Object
55 56 57 58 59 60 |
# File 'lib/excel_templating/excel_abstraction/sheet.rb', line 55 def merge(length, value, = {}) format = _format() merge_range(active_cell_reference.row, active_cell_reference.col, active_cell_reference.row, active_cell_reference.col + length, value, format) active_cell_reference.right(length + 1) self end |
#next_row ⇒ Object
Advance the pointer to the next row.
46 47 48 |
# File 'lib/excel_templating/excel_abstraction/sheet.rb', line 46 def next_row active_cell_reference.newline end |
#style_col(col, width: nil, format: {}, level: 0, collapse: 0, hidden: nil) ⇒ Object
Style the numbered column
81 82 83 84 85 86 87 88 |
# File 'lib/excel_templating/excel_abstraction/sheet.rb', line 81 def style_col(col, width: nil, format: {}, level: 0, collapse: 0, hidden: nil) format = _format(format || {}) if level raise "Outline level can only be between 0 and 7" unless (0..7) === level end set_column(col, col, width, format, hidden, level, collapse) self end |
#style_row(row, properties = {}) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/excel_templating/excel_abstraction/sheet.rb', line 62 def style_row(row, properties = {}) height = properties[:height] format = _format(properties[:format] || {}) hidden = properties[:hidden] || 0 outline_level = properties[:level] || 0 if outline_level raise "Outline level can only be between 0 and 7" unless (0..7) === outline_level end collapse = properties[:collapse] || 0 set_row(row, height, format, hidden, outline_level, collapse) self end |