Skip to content

Commit 1123982

Browse files
jeffcareyjreback
authored andcommitted
CLN: Moved freeze_panes validation to io/excel.py (#15160)
follow up to #15160 Author: Jeff Carey <[email protected]> Closes #15592 from jeffcarey/enh-15160-touchup2 and squashes the following commits: 81cb86f [Jeff Carey] Cleaned up freeze_panes validation code a802fc7 [Jeff Carey] Moved freeze_panes validation to io/excel.py
1 parent e097bf5 commit 1123982

File tree

2 files changed

+19
-15
lines changed

2 files changed

+19
-15
lines changed

pandas/core/frame.py

-12
Original file line numberDiff line numberDiff line change
@@ -1431,24 +1431,12 @@ def to_excel(self, excel_writer, sheet_name='Sheet1', na_rep='',
14311431
inf_rep=inf_rep)
14321432

14331433
formatted_cells = formatter.get_formatted_cells()
1434-
freeze_panes = self._validate_freeze_panes(freeze_panes)
14351434
excel_writer.write_cells(formatted_cells, sheet_name,
14361435
startrow=startrow, startcol=startcol,
14371436
freeze_panes=freeze_panes)
14381437
if need_save:
14391438
excel_writer.save()
14401439

1441-
def _validate_freeze_panes(self, freeze_panes):
1442-
if freeze_panes is not None:
1443-
if (
1444-
len(freeze_panes) == 2 and
1445-
all(isinstance(item, int) for item in freeze_panes)
1446-
):
1447-
return freeze_panes
1448-
1449-
raise ValueError("freeze_panes must be of form (row, column)"
1450-
" where row and column are integers")
1451-
14521440
def to_stata(self, fname, convert_dates=None, write_index=True,
14531441
encoding="latin-1", byteorder=None, time_stamp=None,
14541442
data_label=None, variable_labels=None):

pandas/io/excel.py

+19-3
Original file line numberDiff line numberDiff line change
@@ -543,6 +543,22 @@ def __exit__(self, exc_type, exc_value, traceback):
543543
self.close()
544544

545545

546+
def _validate_freeze_panes(freeze_panes):
547+
if freeze_panes is not None:
548+
if (
549+
len(freeze_panes) == 2 and
550+
all(isinstance(item, int) for item in freeze_panes)
551+
):
552+
return True
553+
554+
raise ValueError("freeze_panes must be of form (row, column)"
555+
" where row and column are integers")
556+
557+
# freeze_panes wasn't specified, return False so it won't be applied
558+
# to output sheet
559+
return False
560+
561+
546562
def _trim_excel_header(row):
547563
# trim header row so auto-index inference works
548564
# xlrd uses '' , openpyxl None
@@ -1330,7 +1346,7 @@ def write_cells(self, cells, sheet_name=None, startrow=0, startcol=0,
13301346
wks.title = sheet_name
13311347
self.sheets[sheet_name] = wks
13321348

1333-
if freeze_panes is not None:
1349+
if _validate_freeze_panes(freeze_panes):
13341350
wks.freeze_panes = wks.cell(row=freeze_panes[0] + 1,
13351351
column=freeze_panes[1] + 1)
13361352

@@ -1418,7 +1434,7 @@ def write_cells(self, cells, sheet_name=None, startrow=0, startcol=0,
14181434
wks = self.book.add_sheet(sheet_name)
14191435
self.sheets[sheet_name] = wks
14201436

1421-
if freeze_panes is not None:
1437+
if _validate_freeze_panes(freeze_panes):
14221438
wks.set_panes_frozen(True)
14231439
wks.set_horz_split_pos(freeze_panes[0])
14241440
wks.set_vert_split_pos(freeze_panes[1])
@@ -1550,7 +1566,7 @@ def write_cells(self, cells, sheet_name=None, startrow=0, startcol=0,
15501566

15511567
style_dict = {}
15521568

1553-
if freeze_panes is not None:
1569+
if _validate_freeze_panes(freeze_panes):
15541570
wks.freeze_panes(*(freeze_panes))
15551571

15561572
for cell in cells:

0 commit comments

Comments
 (0)