def add_custom_formats fmtary
        fmtary.each do |x|
          if x[:formatCode] =~ /[#0%\?]/
            ostring = numeric x[:formatCode]
            if x[:formatCode] =~ /\//
              cls = 'rational'
            else
              cls = 'numeric'
            end
          elsif x[:formatCode].downcase =~ /[dmysh]/
            ostring = datetime x[:formatCode]
            cls = 'date'
          elsif x[:formatCode].downcase == "general"
            ostring = nil
            cls = 'string'
          end
          Formatarray << {:id => x[:numFmtId].to_s, :xl => x[:formatCode].to_s, :ostring => ostring, :cls => cls}
        end
      end
def add_custom_formats fmtary
        fmtary.each do |x|
          if x[:formatCode] =~ /[#0%\?]/
            ostring = numeric x[:formatCode]
            if x[:formatCode] =~ /\//
              cls = 'rational'
            else
              cls = 'numeric'
            end
          elsif x[:formatCode].downcase =~ /[dmysh]/
            ostring = datetime x[:formatCode]
            cls = 'date'
          elsif x[:formatCode].downcase == "general"
            ostring = nil
            cls = 'string'
          end
          Formatarray << {:id => x[:numFmtId].to_s, :xl => x[:formatCode].to_s, :ostring => ostring, :cls => cls}
        end
      end
Convert the temporary format array (the collection of non-default number formatting strings defined in the excel sheet in use)
 to a series of hashes containing an id, an excel format string, a converted format string and an object class the format is
 interpreted on.