Class: Rspreadsheet::Worksheet
- Inherits:
-
Object
- Object
- Rspreadsheet::Worksheet
- Defined in:
- lib/rspreadsheet/worksheet.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
Returns the value of attribute name.
-
#xmlnode ⇒ Object
Returns the value of attribute xmlnode.
Instance Method Summary collapse
-
#[](r, c) ⇒ Object
syntactic sugar follows.
- #[]=(r, c, avalue) ⇒ Object
- #cells(r, c) ⇒ Object
-
#initialize(xmlnode_or_sheet_name) ⇒ Worksheet
constructor
def_delegators :nonemptycells.
-
#method_missing(method_name, *args, &block) ⇒ Object
allows syntax like sheet.F15.
- #nonemptycells ⇒ Object
- #rows(rowi) ⇒ Object
- #used_rows_range ⇒ Object
Constructor Details
#initialize(xmlnode_or_sheet_name) ⇒ Worksheet
def_delegators :nonemptycells
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/rspreadsheet/worksheet.rb', line 12 def initialize(xmlnode_or_sheet_name) # set up the @xmlnode according to parameter case xmlnode_or_sheet_name when LibXML::XML::Node @xmlnode = xmlnode_or_sheet_name when String @xmlnode = LibXML::XML::Node.new('table') ns = LibXML::XML::Namespace.new(@xmlnode, 'table', 'urn:oasis:names:tc:opendocument:xmlns:table:1.0') @xmlnode .namespaces.namespace = ns @xmlnode['table:name'] = xmlnode_or_sheet_name else raise 'Provide name or xml node to create a Worksheet object' end ## initialize rows @spredsheetrows=RowArray.new(@xmlnode) end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args, &block) ⇒ Object
allows syntax like sheet.F15
45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/rspreadsheet/worksheet.rb', line 45 def method_missing method_name, *args, &block if method_name.to_s.match(/^([A-Z]{1,3})(\d{1,8})(=?)$/) row,col = Rspreadsheet::Tools.convert_cell_address($~[1],$~[2]) assignchar = $~[3] if assignchar == '=' self.cells(row,col).value = args.first else self.cells(row,col).value end else super end end |
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
8 9 10 |
# File 'lib/rspreadsheet/worksheet.rb', line 8 def name @name end |
#xmlnode ⇒ Object
Returns the value of attribute xmlnode.
8 9 10 |
# File 'lib/rspreadsheet/worksheet.rb', line 8 def xmlnode @xmlnode end |
Instance Method Details
#[](r, c) ⇒ Object
syntactic sugar follows
38 39 40 |
# File 'lib/rspreadsheet/worksheet.rb', line 38 def [](r,c) cells(r,c).value end |
#[]=(r, c, avalue) ⇒ Object
41 42 43 |
# File 'lib/rspreadsheet/worksheet.rb', line 41 def []=(r,c,avalue) cells(r,c).value=avalue end |
#cells(r, c) ⇒ Object
28 29 30 |
# File 'lib/rspreadsheet/worksheet.rb', line 28 def cells(r,c) rows(r).andand.cells(c) end |
#nonemptycells ⇒ Object
31 32 33 |
# File 'lib/rspreadsheet/worksheet.rb', line 31 def nonemptycells used_rows_range.collect{ |rowi| rows(rowi) }.collect { |row| row.nonemptycells }.flatten end |
#rows(rowi) ⇒ Object
34 35 36 |
# File 'lib/rspreadsheet/worksheet.rb', line 34 def rows(rowi) @spredsheetrows.get_row(rowi) end |
#used_rows_range ⇒ Object
58 59 60 |
# File 'lib/rspreadsheet/worksheet.rb', line 58 def used_rows_range 1..@spredsheetrows.first_unused_row_index-1 end |