class RubyXL::Cell
def column
def column r && r.first_col end
def column=(v)
def column=(v) self.r = RubyXL::Reference.new(row || 0, v) end
def index_in_collection
def index_in_collection r.col_range.begin end
def is_date?
def is_date? return false unless raw_value =~ /\A\d+(?:\.\d+)?\Z/ # Only fully numeric values can be dates num_fmt = self.number_format num_fmt && num_fmt.is_date_format? end
def number_format
def number_format workbook.stylesheet.get_number_format_by_id(get_cell_xf.num_fmt_id) end
def raw_value
def raw_value value_container && value_container.value end
def raw_value=(v)
def raw_value=(v) self.value_container ||= RubyXL::CellValue.new value_container.value = v end
def row
def row r && r.first_row end
def row=(v)
def row=(v) self.r = RubyXL::Reference.new(v, column || 0) end
def value(args = {})
Gets massaged value of the cell, converting datatypes to those known to Ruby (that includes
def value(args = {}) return raw_value if args[:raw] case datatype when RubyXL::DataType::SHARED_STRING then workbook.shared_strings_container[raw_value.to_i].to_s else if is_date? then workbook.num_to_date(raw_value.to_f) elsif raw_value.is_a?(String) && (raw_value =~ /\A-?\d+(\.\d+(?:e[+-]\d+)?)?\Z/i) # Numeric if $1 then raw_value.to_f else raw_value.to_i end else raw_value end end end