The situation is described in https://bitbucket.org/ericgazoni/openpyxl/issue/124/rawcellis_date-returns-false-positive and results in datetime being returned instead of float causing incorrect data. Could this method argument be exposed to the ExcelFile **init** with a default of True? using False will work around the issue, presumably at the cost of performance. Iteration code would then be needed in pandas ExcelFile._parse_xlsx ... As this bug has existed for months in openpyxl without comment and code is still described as "very raw" in openpyxl https://bitbucket.org/ericgazoni/openpyxl/src/0082a961cf8b/openpyxl/reader/iter_worksheet.py#cl-27 Alternatively, if xlrd 0.8.0 is released with xlsx support, pandas could use that instead.