class RubyXL::Cell

www.datypic.com/sc/ooxml/e-ssml_c-2.html

Constants

NUMBER_REGEXP

Attributes

worksheet[RW]

Public Instance Methods

column() click to toggle source
# File lib/rubyXL/objects/sheet_data.rb, line 61
def column
  r && r.first_col
end
column=(v) click to toggle source
# File lib/rubyXL/objects/sheet_data.rb, line 65
def column=(v)
  self.r = RubyXL::Reference.new(row || 0, v)
end
get_cell_border() click to toggle source
# File lib/rubyXL/objects/sheet_data.rb, line 86
def get_cell_border
  workbook.stylesheet.borders[get_cell_xf.border_id]
end
get_cell_font() click to toggle source
# File lib/rubyXL/objects/sheet_data.rb, line 82
def get_cell_font
  workbook.stylesheet.fonts[get_cell_xf.font_id]
end
get_cell_xf() click to toggle source
# File lib/rubyXL/objects/sheet_data.rb, line 78
def get_cell_xf
  workbook.stylesheet.cell_xfs[self.style_index || 0]
end
index_in_collection() click to toggle source
# File lib/rubyXL/objects/sheet_data.rb, line 49
def index_in_collection
  r.col_range.begin
end
inspect() click to toggle source
# File lib/rubyXL/objects/sheet_data.rb, line 126
def inspect
  str = "#<#{self.class}(#{row},#{column}): #{raw_value.inspect}"
  str << " =#{self.formula.expression}" if self.formula
  str << ", datatype=#{self.datatype.inspect}, style_index=#{self.style_index.inspect}>"
  return str
end
is_date?() click to toggle source
# File lib/rubyXL/objects/sheet_data.rb, line 94
def is_date?
  return false unless # Only fully numeric values can be dates
    case raw_value
    when Numeric then true
    when String  then raw_value =~ NUMBER_REGEXP
    else false
    end

  num_fmt = self.number_format
  num_fmt && num_fmt.is_date_format?
end
number_format() click to toggle source
# File lib/rubyXL/objects/sheet_data.rb, line 90
def number_format
  workbook.stylesheet.get_number_format_by_id(get_cell_xf.num_fmt_id)
end
raw_value() click to toggle source
# File lib/rubyXL/objects/sheet_data.rb, line 69
def raw_value
  value_container && value_container.value
end
raw_value=(v) click to toggle source
# File lib/rubyXL/objects/sheet_data.rb, line 73
def raw_value=(v)
  self.value_container ||= RubyXL::CellValue.new
  value_container.value = v
end
row() click to toggle source
# File lib/rubyXL/objects/sheet_data.rb, line 53
def row
  r && r.first_row
end
row=(v) click to toggle source
# File lib/rubyXL/objects/sheet_data.rb, line 57
def row=(v)
  self.r = RubyXL::Reference.new(v, column || 0)
end
value(args = {}) click to toggle source

Gets massaged value of the cell, converting datatypes to those known to Ruby (that includes stripping any special formatting from RichText).

# File lib/rubyXL/objects/sheet_data.rb, line 108
def value(args = {})
  r = self.raw_value

  case datatype
  when RubyXL::DataType::SHARED_STRING then workbook.shared_strings_container[r.to_i].to_s
  when RubyXL::DataType::INLINE_STRING then is.to_s
  when RubyXL::DataType::RAW_STRING    then raw_value
  else
    if is_date? then workbook.num_to_date(r.to_f)
    elsif r.is_a?(String) && (r =~ NUMBER_REGEXP) then # Numeric
      if $1 != '' then r.to_f
      else r.to_i
      end
    else r
    end
  end
end