When adding tables layers from Excel files, ArcGIS attempts to guess the data-types:
Microsoft Excel does not enforce field types for values during data entry like standard databases do. Therefore, the field type specified in Excel is not used in determining the field type exposed in ArcGIS. Instead, field type in ArcGIS is determined by a scan of the values in the first eight rows for that field. If the scan finds mixed data types in a single field, that field will be returned as a string field and the values will be converted to strings.
Does anyone know what heuristic rules are used here?