From a09fcab895784fedda3fac9a808fb9214c6e111f Mon Sep 17 00:00:00 2001 From: Andrew Hawryluk Date: Fri, 12 Feb 2021 14:19:44 -0700 Subject: [PATCH 1/2] CLN: remove redundant openpyxl type conversions openpyxl already converts cell values to Python types, preferring integers where possible. For backwards-compatibility, we have to convert integers back to float if not `convert_float` --- pandas/io/excel/_openpyxl.py | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/pandas/io/excel/_openpyxl.py b/pandas/io/excel/_openpyxl.py index 3a753a707166e..5c9cb4cae1b97 100644 --- a/pandas/io/excel/_openpyxl.py +++ b/pandas/io/excel/_openpyxl.py @@ -513,20 +513,10 @@ def _convert_cell(self, cell, convert_float: bool) -> Scalar: if cell.value is None: return "" # compat with xlrd - elif cell.is_date: - return cell.value elif cell.data_type == TYPE_ERROR: return np.nan - elif cell.data_type == TYPE_BOOL: - return bool(cell.value) - elif cell.data_type == TYPE_NUMERIC: - # GH5394 - if convert_float: - val = int(cell.value) - if val == cell.value: - return val - else: - return float(cell.value) + elif not convert_float and cell.data_type == TYPE_NUMERIC: + return float(cell.value) return cell.value From 6ed838a6260c8324b49c703a537ed56aba6590af Mon Sep 17 00:00:00 2001 From: Andrew Hawryluk Date: Fri, 12 Feb 2021 14:43:18 -0700 Subject: [PATCH 2/2] Remove unused import --- pandas/io/excel/_openpyxl.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/io/excel/_openpyxl.py b/pandas/io/excel/_openpyxl.py index 5c9cb4cae1b97..6ebb04eb19534 100644 --- a/pandas/io/excel/_openpyxl.py +++ b/pandas/io/excel/_openpyxl.py @@ -509,7 +509,7 @@ def get_sheet_by_index(self, index: int): def _convert_cell(self, cell, convert_float: bool) -> Scalar: - from openpyxl.cell.cell import TYPE_BOOL, TYPE_ERROR, TYPE_NUMERIC + from openpyxl.cell.cell import TYPE_ERROR, TYPE_NUMERIC if cell.value is None: return "" # compat with xlrd