def initialize(row, value = nil, options = {})
      @row = row
      # Do not use instance vars if not needed to use less RAM
      # And do not call parse_options on frequently used options
      # to get less GC cycles
      type = options.delete(:type) || cell_type_from_value(value)
      self.type = type unless type == :string


      val = options.delete(:style)
      self.style = val unless val.nil? || val == 0
      val = options.delete(:formula_value)
      self.formula_value = val unless val.nil?

      parse_options(options)

      self.value = value
      value.cell = self if contains_rich_text?
    end
@param [Row] row The row this cell belongs to.
@param [Any] value The value associated with this cell.
@option options [Symbol] type The intended data type for this cell. If not specified the data type will be determined internally based on the vlue provided.
@option options [Integer] style The index of the cellXfs item to be applied to this cell. If not specified, the default style (0) will be applied.
@option options [String] font_name
@option options [Integer] charset
@option options [String] family
@option options [Boolean] b
@option options [Boolean] i
@option options [Boolean] strike
@option options [Boolean] outline
@option options [Boolean] shadow
@option options [Boolean] condense
@option options [Boolean] extend
@option options [Boolean] u
@option options [Symbol] vertAlign must be one of :baseline, :subscript, :superscript
@option options [Integer] sz
@option options [String] color an 8 letter rgb specification
@option options [Number] formula_value The value to cache for a formula cell.
@option options [Symbol] scheme must be one of :none, major, :minor