title: pandas.read_excel() outputs 'OverflowError: date value out of range' while no date column exists
body: <p>I am trying to import a large excel file (400k x 40) to a Pandas DataFrame. While it works well on my local machine it breaks when ported to a linux server with Python=3.7, Pandas=1.2.4 and Openpyxl=3.0.7. Locally I have slightly older packages. I have tried all constelations of parameters regarding types and dates:</p>
  <pre><code>df = pd.read_excel(fpath)
  df = pd.read_excel(fpath, dtype=str, parse_dates=['the_only_actual_date_column']) # all dates are within 2017
  df = pd.read_excel(fpath, dtype={k:str for k in column_names})
  df = pd.read_excel(fpath, converters={k:str for k in column_names})
  
  </code></pre>
  <p>but nothing worked, I am always getting the same error:</p>
  <p><code>OverflowError: date value out of range</code></p>
  <p>I suspect that somewhere a random cell is treated as a date but how is it possible that the date value is a concern if I declare to treat everything as a string? The same happens even if I specify <code>usecols</code> to only one column which is definitely not a date.</p>
  <p>Edit: full error message</p>
  <pre class="lang-py prettyprint-override"><code>---------------------------------------------------------------------------
  OverflowError                             Traceback (most recent call last)
  &lt;ipython-input-12-d38de141bf91&gt; in &lt;module&gt;
  ----&gt; 1 fu = pd.read_excel(fpath, nrows=10)
  
  /opt/tljh/user/lib/python3.7/site-packages/pandas/util/_decorators.py in wrapper(*args, **kwargs)
      297                 )
      298                 warnings.warn(msg, FutureWarning, stacklevel=stacklevel)
  --&gt; 299             return func(*args, **kwargs)
      300 
      301         return wrapper
  
  /opt/tljh/user/lib/python3.7/site-packages/pandas/io/excel/_base.py in read_excel(io, sheet_name, header, names, index_col, usecols, squeeze, dtype, engine, converters, true_values, false_values, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, parse_dates, date_parser, thousands, comment, skipfooter, convert_float, mangle_dupe_cols, storage_options)
      365             skipfooter=skipfooter,
      366             convert_float=convert_float,
  --&gt; 367             mangle_dupe_cols=mangle_dupe_cols,
      368         )
      369     finally:
  
  /opt/tljh/user/lib/python3.7/site-packages/pandas/io/excel/_base.py in parse(self, sheet_name, header, names, index_col, usecols, squeeze, converters, true_values, false_values, skiprows, nrows, na_values, parse_dates, date_parser, thousands, comment, skipfooter, convert_float, mangle_dupe_cols, **kwds)
     1188             convert_float=convert_float,
     1189             mangle_dupe_cols=mangle_dupe_cols,
  -&gt; 1190             **kwds,
     1191         )
     1192 
  
  /opt/tljh/user/lib/python3.7/site-packages/pandas/io/excel/_base.py in parse(self, sheet_name, header, names, index_col, usecols, squeeze, dtype, true_values, false_values, skiprows, nrows, na_values, verbose, parse_dates, date_parser, thousands, comment, skipfooter, convert_float, mangle_dupe_cols, **kwds)
      490                 sheet = self.get_sheet_by_index(asheetname)
      491 
  --&gt; 492             data = self.get_sheet_data(sheet, convert_float)
      493             usecols = maybe_convert_usecols(usecols)
      494 
  
  /opt/tljh/user/lib/python3.7/site-packages/pandas/io/excel/_openpyxl.py in get_sheet_data(self, sheet, convert_float)
      546         data: List[List[Scalar]] = []
      547         last_row_with_data = -1
  --&gt; 548         for row_number, row in enumerate(sheet.rows):
      549             converted_row = [self._convert_cell(cell, convert_float) for cell in row]
      550             if not all(cell == &quot;&quot; for cell in converted_row):
  
  /opt/tljh/user/lib/python3.7/site-packages/openpyxl/worksheet/_read_only.py in _cells_by_row(self, min_col, min_row, max_col, max_row, values_only)
       77                                  data_only=self.parent.data_only, epoch=self.parent.epoch,
       78                                  date_formats=self.parent._date_formats)
  ---&gt; 79         for idx, row in parser.parse():
       80             if max_row is not None and idx &gt; max_row:
       81                 break
  
  /opt/tljh/user/lib/python3.7/site-packages/openpyxl/worksheet/_reader.py in parse(self)
      153                 element.clear()
      154             elif tag_name == ROW_TAG:
  --&gt; 155                 row = self.parse_row(element)
      156                 element.clear()
      157                 yield row
  
  /opt/tljh/user/lib/python3.7/site-packages/openpyxl/worksheet/_reader.py in parse_row(self, row)
      284             self.row_dimensions[str(self.row_counter)] = attrs
      285 
  --&gt; 286         cells = [self.parse_cell(el) for el in row]
      287         return self.row_counter, cells
      288 
  
  /opt/tljh/user/lib/python3.7/site-packages/openpyxl/worksheet/_reader.py in &lt;listcomp&gt;(.0)
      284             self.row_dimensions[str(self.row_counter)] = attrs
      285 
  --&gt; 286         cells = [self.parse_cell(el) for el in row]
      287         return self.row_counter, cells
      288 
  
  /opt/tljh/user/lib/python3.7/site-packages/openpyxl/worksheet/_reader.py in parse_cell(self, element)
      205                     try:
      206                         value = from_excel(
  --&gt; 207                             value, self.epoch, timedelta=style_id in self.timedelta_formats
      208                         )
      209                     except ValueError:
  
  /opt/tljh/user/lib/python3.7/site-packages/openpyxl/utils/datetime.py in from_excel(value, epoch, timedelta)
      120     if 0 &lt; value &lt; 60 and epoch == WINDOWS_EPOCH:
      121         day += 1
  --&gt; 122     return epoch + datetime.timedelta(days=day) + diff
      123 
      124 
  
  OverflowError: date value out of range
  </code></pre>