Class: RubyXL::Worksheet
- Inherits:
-
OOXMLTopLevelObject
- Object
- OOXMLObject
- OOXMLTopLevelObject
- RubyXL::Worksheet
- Includes:
- LegacyWorksheet, RelationshipSupport
- Defined in:
- lib/rubyXL/objects/worksheet.rb
Overview
Constant Summary collapse
- CONTENT_TYPE =
'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml'.freeze
- REL_TYPE =
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet'.freeze
Constants included from LegacyWorksheet
LegacyWorksheet::TEXT_LENGTH_LIMIT_IN_CELL
Constants inherited from OOXMLTopLevelObject
OOXMLTopLevelObject::ROOT, OOXMLTopLevelObject::SAVE_ORDER
Instance Attribute Summary collapse
-
#rels ⇒ Object
Returns the value of attribute rels.
-
#sheet_id ⇒ Object
Returns the value of attribute sheet_id.
-
#sheet_name ⇒ Object
Returns the value of attribute sheet_name.
-
#state ⇒ Object
Returns the value of attribute state.
-
#workbook ⇒ Object
Returns the value of attribute workbook.
Attributes included from RelationshipSupport
#generic_storage, #relationship_container
Attributes inherited from OOXMLTopLevelObject
Attributes included from OOXMLObjectInstanceMethods
Class Method Summary collapse
Instance Method Summary collapse
-
#before_write_xml ⇒ Object
This method may need to be moved higher in the hierarchy.
- #cell_at(ref) ⇒ Object
- #get_col_xf(column_index) ⇒ Object
- #get_row_xf(row) ⇒ Object
- #related_objects ⇒ Object
- #xlsx_path ⇒ Object
Methods included from LegacyWorksheet
#[], #add_cell, #add_row, #each, #initialize
Methods included from RelationshipSupport
#attach_relationship, #collect_related_objects, included, #load_relationships, #store_relationship
Methods inherited from OOXMLTopLevelObject
#add_to_zip, #file_index, parse_file, set_namespaces
Methods included from OOXMLObjectInstanceMethods
#==, included, #index_in_collection, #initialize, #write_xml
Instance Attribute Details
#rels ⇒ Object
Returns the value of attribute rels.
685 686 687 |
# File 'lib/rubyXL/objects/worksheet.rb', line 685 def rels @rels end |
#sheet_id ⇒ Object
Returns the value of attribute sheet_id.
685 686 687 |
# File 'lib/rubyXL/objects/worksheet.rb', line 685 def sheet_id @sheet_id end |
#sheet_name ⇒ Object
Returns the value of attribute sheet_name.
685 686 687 |
# File 'lib/rubyXL/objects/worksheet.rb', line 685 def sheet_name @sheet_name end |
#state ⇒ Object
Returns the value of attribute state.
685 686 687 |
# File 'lib/rubyXL/objects/worksheet.rb', line 685 def state @state end |
#workbook ⇒ Object
Returns the value of attribute workbook.
685 686 687 |
# File 'lib/rubyXL/objects/worksheet.rb', line 685 def workbook @workbook end |
Class Method Details
.parse(param) ⇒ Object
736 737 738 739 740 741 742 743 744 |
# File 'lib/rubyXL/objects/worksheet.rb', line 736 def self.parse(param) sheet_obj = super sheet_obj.sheet_data.rows.each { |r| next if r.nil? r.worksheet = sheet_obj r.cells.each { |c| c.worksheet = sheet_obj unless c.nil? } } sheet_obj end |
Instance Method Details
#before_write_xml ⇒ Object
This method may need to be moved higher in the hierarchy
687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 |
# File 'lib/rubyXL/objects/worksheet.rb', line 687 def before_write_xml # This method may need to be moved higher in the hierarchy first_nonempty_row = nil last_nonempty_row = 0 first_nonempty_column = nil last_nonempty_column = 0 if sheet_data then sheet_data.rows.each_with_index { |row, row_index| next if row.nil? || row.cells.empty? first_nonempty_cell = nil last_nonempty_cell = 0 row.cells.each_with_index { |cell, col_index| next if cell.nil? cell.r = RubyXL::Reference.new(row_index, col_index) first_nonempty_cell ||= col_index last_nonempty_cell = col_index } if first_nonempty_cell then # If there's nothing in this row, then +first_nonempty_cell+ will be +nil+. last_nonempty_row = row_index first_nonempty_row ||= row_index first_nonempty_column ||= first_nonempty_cell last_nonempty_column = last_nonempty_cell if last_nonempty_cell > last_nonempty_column end row.r = row_index + 1 row.spans = "#{first_nonempty_cell + 1}:#{last_nonempty_cell + 1}" unless first_nonempty_cell.nil? row.custom_format = (row.style_index.to_i != 0) } if first_nonempty_row then self.dimension ||= RubyXL::WorksheetDimensions.new self.dimension.ref = RubyXL::Reference.new(first_nonempty_row, last_nonempty_row, first_nonempty_column, last_nonempty_column) end end true end |
#cell_at(ref) ⇒ Object
754 755 756 757 758 |
# File 'lib/rubyXL/objects/worksheet.rb', line 754 def cell_at(ref) reference = RubyXL::Reference.new(ref) raise "Invalid reference: #{ref}" unless reference.valid? && reference.single_cell? sheet_data&.rows&.[](reference.first_row)&.cells&.[](reference.first_col) end |
#get_col_xf(column_index) ⇒ Object
746 747 748 |
# File 'lib/rubyXL/objects/worksheet.rb', line 746 def get_col_xf(column_index) workbook.stylesheet.cell_xfs[get_col_style(column_index)] end |
#get_row_xf(row) ⇒ Object
750 751 752 |
# File 'lib/rubyXL/objects/worksheet.rb', line 750 def get_row_xf(row) workbook.stylesheet.cell_xfs[get_row_style(row)] end |
#related_objects ⇒ Object
621 622 623 |
# File 'lib/rubyXL/objects/worksheet.rb', line 621 def comments + printer_settings end |
#xlsx_path ⇒ Object
732 733 734 |
# File 'lib/rubyXL/objects/worksheet.rb', line 732 def xlsx_path ROOT.join('xl', 'worksheets', "sheet#{file_index}.xml") end |