Python 2.7.10 Tried pandas 0.17.1 -- function read_excel Tried pyexcel 0.1.7 + pyexcel-xlsx 0.0.7 -- function get_records() When using pandas in Python is it possible to read excel files (formats: xls, xlsx) and leave columns containing date or date + time values as strings rather than auto-converting to datetime.datetime or timestamp types? If this is not possible using pandas can someone suggest an alternate method/library to read xls, xlsx files and leave date column values as strings? For the pandas solution attempts the df.info() and resulting date column types are shown below: >>> df.info() <class 'pandas.core.frame.DataFrame'> Int64Index: 117 entries, 0 to 116 Columns: 176 entries, Mine to Index dtypes: datetime64[ns](2), float64(145), int64(26), object(3) memory usage: 161.8+ KB >>> type(df['Start Date'][0]) Out[6]: pandas.tslib.Timestamp >>> type(df['End Date'][0]) Out[7]: pandas.tslib.Timestamp Attempt/Approach 1: def read_as_dataframe(filename, ext): import pandas as pd if ext in ('xls', 'xlsx'): # problem: date columns auto converted to datetime.datetime or timestamp! df = pd.read_excel(filename) # unwanted - date columns converted! return df, name, ext Attempt/Approach 2: import pandas as pd # import datetime as datetime # parse_date = lambda x: datetime.strptime(x, '%Y%m%d %H') parse_date = lambda x: x elif ext in ('xls', 'xlsx', ): df = pd.read_excel(filename, parse_dates=False) date_cols = [df.columns.get_loc(c) for c in df.columns if c in ('Start Date', 'End Date')] # problem: date columns auto converted to datetime.datetime or timestamp! df = pd.read_excel(filename, parse_dates=date_cols, date_parser=parse_date) And have also tried pyexcel library but it does the same auto-magic convert behavior: Attempt/Approach 3: import pyexcel as pe import pyexcel.ext.xls import pyexcel.ext.xlsx t0 = time.time() if ext == 'xlsx': records = pe.get_records(file_name=filename) for record in records: print("start date = %s (type=%s), end date = %s (type=%s)" % (record['Start Date'], str(type(record['Start Date'])), record['End Date'], str(type(record['End Date']))) ) Continue reading...