Class: Spreadsheet::Row

### Home Classes Methods

### In Files

- lib/spreadsheet/row.rb

### Parent

Array

### Methods

- ::format_updater
- ::new
- ::updater
- #default_format
- #default_format=
- #first_unused
- #first_used
- #format
- #formatted
- #formatted_size
- #inspect
- #set_format
- #update_format

### Included Modules

- Spreadsheet::Datatypes

### Files

- LICENSE.txt
- Manifest.txt

### Class/Module Index

Quicksearch

- Spreadsheet
- Spreadsheet::Column
- Spreadsheet::Compatibility
- Spreadsheet::Datatypes
- Spreadsheet::Encodings
- Spreadsheet::Errors
- Spreadsheet::Excel
- Spreadsheet::Excel::Error
- Spreadsheet::Excel::ExcelCompatibleWorkbook
- Spreadsheet::Excel::Internals
- Spreadsheet::Excel::Internals::Biff5
- Spreadsheet::Excel::Internals::Biff8
- Spreadsheet::Excel::Offset
- Spreadsheet::Excel::Password
- Spreadsheet::Excel::Reader
- Spreadsheet::Excel::Reader::Biff5
- Spreadsheet::Excel::Rgb
- Spreadsheet::Excel::Row
- Spreadsheet::Excel::SstEntry
- Spreadsheet::Excel::Workbook
- Spreadsheet::Excel::Worksheet
- Spreadsheet::Font
- Spreadsheet::Format
- Spreadsheet::Formula
- Spreadsheet::Helpers
- Spreadsheet::Link
- Spreadsheet::Note
- Spreadsheet::NoteObject
- Spreadsheet::ParseExcel
- Spreadsheet::ParseExcel::Worksheet
- Spreadsheet::ParseExcel::Worksheet::Cell
- Spreadsheet::Row
- Spreadsheet::Workbook
- Spreadsheet::Worksheet
- Spreadsheet::Writer

No matching classes.

# Spreadsheet::Row

The Row class. Encapsulates Cell data and formatting. Since Row is a subclass of Array, you may use all the standard Array methods to manipulate a Row. By convention, Row#at will give you raw values, while Row#[] may be overridden to return enriched data if necessary (see also the Date- and DateTime-handling in Excel::Row#[]

Useful Attributes are:

idx | The 0-based index of this Row in its Worksheet.
formats | A parallel array containing Formatting information for all cells stored in a Row.
default_format | The default Format used when writing a Cell if no explicit Format is stored in formats for the cell.
height | The height of this Row in points (defaults to 12).

### Attributes

formats[R]
height[RW]
idx[RW]
worksheet[RW]

### Public Class Methods

format_updater(*keys) click to toggle source

    # File lib/spreadsheet/row.rb, line 22
    def format_updater *keys
      keys.each do |key|
        unless instance_methods.include? "unupdated_#{key}="
          alias_method :"unupdated_#{key}=", :"#{key}="
          define_method "#{key}=" do |value|
            send "unupdated_#{key}=", value
            @worksheet.row_updated @idx, self if @worksheet
            value
          end
        end
      end
    end

new(worksheet, idx, cells=[]) click to toggle source

    # File lib/spreadsheet/row.rb, line 59
    def initialize worksheet, idx, cells=[]
      @default_format = nil
      @worksheet = worksheet
      @idx = idx
      super cells
      @formats = []
      @height = 12.1
    end

updater(*keys) click to toggle source

    # File lib/spreadsheet/row.rb, line 34
    def updater *keys
      keys.each do |key|
        ## Passing blocks to methods defined with define_method is not possible
        #  in Ruby 1.8:
        #  http://groups.google.com/group/ruby-talk-google/msg/778184912b769e5f
        #  use class_eval as suggested by someone else in
        #  http://rubyforge.org/tracker/index.php?func=detail&aid=25732&group_id=678&atid=2677
        class_eval             def #{key}(*args)              res = super(*args)              @worksheet.row_updated @idx, self if @worksheet              res            end, __FILE__, __LINE__
      end
    end

### Public Instance Methods

default_format() click to toggle source

The default Format of this Row, if you have set one. Returns the Worksheet's default or the Workbook's default Format otherwise.

    # File lib/spreadsheet/row.rb, line 70
    def default_format
      @default_format || @worksheet.default_format || @workbook.default_format
    end

default_format=(format) click to toggle source

Set the default Format used when writing a Cell if no explicit Format is stored for the cell.

    # File lib/spreadsheet/row.rb, line 76
    def default_format= format
      @worksheet.add_format format if @worksheet
      @default_format = format
    end

first_unused() click to toggle source

first_unused (really last used + 1) - the 0-based index of the first of all remaining contiguous blank Cells.

Alias for: formatted_size
first_used() click to toggle source

first_used the 0-based index of the first non-blank Cell.

    # File lib/spreadsheet/row.rb, line 83
    def first_used
      [ index_of_first(self), index_of_first(@formats) ].compact.min
    end

format(idx) click to toggle source

The Format for the Cell at idx (0-based), or the first valid Format in Row#default_format, Column#default_format and Worksheet#default_format.

    # File lib/spreadsheet/row.rb, line 89
    def format idx
      @formats[idx] || @default_format          || @worksheet.column(idx).default_format if @worksheet
    end

formatted() click to toggle source

Returns a copy of self with nil-values appended for empty cells that have an associated Format. This is primarily a helper-function for the writer classes.

    # File lib/spreadsheet/row.rb, line 97
    def formatted
      copy = dup
      Helpers.rcompact(@formats)
      if copy.length < @formats.size
        copy.concat Array.new(@formats.size - copy.length)
      end
      copy
    end

formatted_size() click to toggle source

Same as Row#size, but takes into account formatted empty cells

    # File lib/spreadsheet/row.rb, line 107
    def formatted_size
      Helpers.rcompact(@formats)
      sz = size
      fs = @formats.size
      fs > sz ? fs : sz
    end

Also aliased as: first_unused
inspect() click to toggle source

    # File lib/spreadsheet/row.rb, line 117
    def inspect
      variables = instance_variables.collect do |name|
        "%s=%s" % [name, instance_variable_get(name)]
      end.join(' ')
      sprintf "#<%s:0x%014x %s %s>", self.class, object_id, variables, super
    end

set_format(idx, fmt) click to toggle source

Set the Format for the Cell at idx (0-based).

    # File lib/spreadsheet/row.rb, line 125
    def set_format idx, fmt
      @formats[idx] = fmt
      @worksheet.add_format fmt
      @worksheet.row_updated @idx, self if @worksheet
      fmt
    end

update_format(idx, opts = {}) click to toggle source

    # File lib/spreadsheet/row.rb, line 132
    def update_format(idx, opts = {})
      if @formats[idx]
        @formats[idx].update_format(opts)
      else
        fmt = default_format.clone
        fmt.font = fmt.font.clone
        @formats[idx] = fmt.update_format(opts)
      end
      @worksheet.add_format @formats[idx]
      @worksheet.row_updated @idx, self if @worksheet
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.