def cast_value(v)
      return v if v.is_a?(RichText) || v.nil?
      case type
      when :date
        self.style = STYLE_DATE if self.style == 0
        v
      when :time
        self.style = STYLE_DATE if self.style == 0
        if !v.is_a?(Time) && v.respond_to?(:to_time)
          v.to_time
        else
          v
        end
      when :float
        v.to_f
      when :integer
        v.to_i
      when :boolean
        v ? 1 : 0
      when :iso_8601
        #consumer is responsible for ensuring the iso_8601 format when specifying this type
        v
      else
        v.to_s
      end
    end
def cast_value(v)
      return v if v.is_a?(RichText) || v.nil?
      case type
      when :date
        self.style = STYLE_DATE if self.style == 0
        v
      when :time
        self.style = STYLE_DATE if self.style == 0
        if !v.is_a?(Time) && v.respond_to?(:to_time)
          v.to_time
        else
          v
        end
      when :float
        v.to_f
      when :integer
        v.to_i
      when :boolean
        v ? 1 : 0
      when :iso_8601
        #consumer is responsible for ensuring the iso_8601 format when specifying this type
        v
      else
        v.to_s
      end
    end
Cast the value into this cells data type.
 @note
   About Time - Time in OOXML is *different* from what you might expect. The history as to why is interesting, but you can safely assume that if you are generating docs on a mac, you will want to specify Workbook.1904 as true when using time typed values.
 @see Axlsx#date1904