Module: RubyXL::LegacyWorksheet
Instance Method Summary collapse
-
#[](row = 0) ⇒ Object
allows for easier access to sheet_data.
- #add_cell(row_index = 0, column_index = 0, data = '', formula = nil, overwrite = true) ⇒ Object
- #add_row(row_index = 0, params = {}) ⇒ Object
- #change_column_fill(column_index, color_index = 'ffffff') ⇒ Object
-
#change_column_width(column_index, width_in_chars = RubyXL::ColumnRange::DEFAULT_WIDTH) ⇒ Object
Get column width measured in number of digits, as per msdn.microsoft.com/en-us/library/documentformat.openxml.spreadsheet.column%28v=office.14%29.aspx.
-
#change_column_width_raw(column_index, width) ⇒ Object
Set raw column width value.
- #each ⇒ Object
- #initialize(params = {}) ⇒ Object
-
#merge_cells(row1 = 0, col1 = 0, row2 = 0, col2 = 0) ⇒ Object
merges cells within a rectangular range.
Instance Method Details
#[](row = 0) ⇒ Object
allows for easier access to sheet_data
18 19 20 |
# File 'lib/rubyXL/worksheet.rb', line 18 def [](row = 0) sheet_data[row] end |
#add_cell(row_index = 0, column_index = 0, data = '', formula = nil, overwrite = true) ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/rubyXL/worksheet.rb', line 85 def add_cell(row_index = 0, column_index = 0, data = '', formula = nil, overwrite = true) validate_workbook validate_nonnegative(row_index) validate_nonnegative(column_index) row = sheet_data.rows[row_index] || add_row(row_index) c = row.cells[column_index] if overwrite || c.nil? c = RubyXL::Cell.new c.worksheet = self c.row = row_index c.column = column_index c.raw_value = data c.datatype = RubyXL::DataType::RAW_STRING unless formula || data.is_a?(Numeric) c.formula = RubyXL::Formula.new(:expression => formula) if formula range = cols && cols.locate_range(column_index) c.style_index = row.style_index || (range && range.style_index) || 0 row.cells[column_index] = c end c end |
#add_row(row_index = 0, params = {}) ⇒ Object
79 80 81 82 83 |
# File 'lib/rubyXL/worksheet.rb', line 79 def add_row(row_index = 0, params = {}) new_row = RubyXL::Row.new(params) new_row.worksheet = self sheet_data.rows[row_index] = new_row end |
#change_column_fill(column_index, color_index = 'ffffff') ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/rubyXL/worksheet.rb', line 58 def change_column_fill(column_index, color_index='ffffff') validate_workbook Color.validate_color(color_index) ensure_cell_exists(0, column_index) cols.get_range(column_index).style_index = @workbook.modify_fill(get_col_style(column_index), color_index) sheet_data.rows.each { |row| c = row[column_index] c.change_fill(color_index) if c } end |
#change_column_width(column_index, width_in_chars = RubyXL::ColumnRange::DEFAULT_WIDTH) ⇒ Object
Get column width measured in number of digits, as per msdn.microsoft.com/en-us/library/documentformat.openxml.spreadsheet.column%28v=office.14%29.aspx
54 55 56 |
# File 'lib/rubyXL/worksheet.rb', line 54 def change_column_width(column_index, width_in_chars = RubyXL::ColumnRange::DEFAULT_WIDTH) change_column_width_raw(column_index, ((width_in_chars + (5.0 / RubyXL::Font::MAX_DIGIT_WIDTH)) * 256).to_i / 256.0) end |
#change_column_width_raw(column_index, width) ⇒ Object
Set raw column width value
44 45 46 47 48 49 50 |
# File 'lib/rubyXL/worksheet.rb', line 44 def change_column_width_raw(column_index, width) validate_workbook ensure_cell_exists(0, column_index) range = cols.get_range(column_index) range.width = width range.custom_width = true end |
#each ⇒ Object
22 23 24 |
# File 'lib/rubyXL/worksheet.rb', line 22 def each sheet_data.rows.each { |row| yield(row) } end |
#initialize(params = {}) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/rubyXL/worksheet.rb', line 5 def initialize(params = {}) super self.workbook = params[:workbook] self.sheet_name = params[:sheet_name] self.sheet_id = params[:sheet_id] self.sheet_data = RubyXL::SheetData.new self.cols = RubyXL::ColumnRanges.new @comments = [] # Do not optimize! These are arrays, so they will share the pointer! @printer_settings = [] @generic_storage = [] end |
#merge_cells(row1 = 0, col1 = 0, row2 = 0, col2 = 0) ⇒ Object
merges cells within a rectangular range
72 73 74 75 76 77 |
# File 'lib/rubyXL/worksheet.rb', line 72 def merge_cells(row1 = 0, col1 = 0, row2 = 0, col2 = 0) validate_workbook self.merged_cells ||= RubyXL::MergedCells.new merged_cells << RubyXL::MergedCell.new(:ref => RubyXL::Reference.new(row1, row2, col1, col2)) end |