Class: OOXL::Workbook
- Inherits:
-
Object
- Object
- OOXL::Workbook
- Defined in:
- lib/ooxl/xl_objects/workbook.rb
Class Method Summary collapse
Instance Method Summary collapse
- #defined_names ⇒ Object
-
#initialize(xml) ⇒ Workbook
constructor
A new instance of Workbook.
- #sheets ⇒ Object
Constructor Details
#initialize(xml) ⇒ Workbook
Returns a new instance of Workbook.
3 4 5 |
# File 'lib/ooxl/xl_objects/workbook.rb', line 3 def initialize(xml) @xml = xml end |
Class Method Details
.load_from_stream(xml_stream) ⇒ Object
30 31 32 |
# File 'lib/ooxl/xl_objects/workbook.rb', line 30 def self.load_from_stream(xml_stream) self.new (Nokogiri.XML(xml_stream).remove_namespaces!) end |
Instance Method Details
#defined_names ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/ooxl/xl_objects/workbook.rb', line 20 def defined_names @defined_names ||= begin @xml.xpath('//definedNames/definedName').map do |defined_names_node| name = defined_names_node.attribute('name').value reference = defined_names_node.text [name, reference] end.to_h end end |
#sheets ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/ooxl/xl_objects/workbook.rb', line 7 def sheets @sheets ||= begin # <sheet r:id="rId13" sheetId="1" name="Ceiling Fans" state="hidden"/> @xml.xpath('//sheets/sheet').map do |sheet_node| name = sheet_node.attribute('name').value rel_id = sheet_node.attribute('id').value.gsub(/[^\d+]/, '') sheet_id = sheet_node.attribute('sheetId').value state = sheet_node.attribute('state').try(:value) { name: name, sheet_id: sheet_id, relationship_id: rel_id, state: (state.blank?) ? 'visible' : state} end end end |