Skip to content

Commit a802fc7

Browse files
committed
Moved freeze_panes validation to io/excel.py
1 parent 09360d8 commit a802fc7

File tree

2 files changed

+27
-18
lines changed

2 files changed

+27
-18
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

+27-6
Original file line numberDiff line numberDiff line change
@@ -1331,8 +1331,15 @@ def write_cells(self, cells, sheet_name=None, startrow=0, startcol=0,
13311331
self.sheets[sheet_name] = wks
13321332

13331333
if freeze_panes is not None:
1334-
wks.freeze_panes = wks.cell(row=freeze_panes[0] + 1,
1335-
column=freeze_panes[1] + 1)
1334+
if (
1335+
len(freeze_panes) == 2 and
1336+
all(isinstance(item, int) for item in freeze_panes)
1337+
):
1338+
wks.freeze_panes = wks.cell(row=freeze_panes[0] + 1,
1339+
column=freeze_panes[1] + 1)
1340+
else:
1341+
raise ValueError("freeze_panes must be of form (row, column)"
1342+
" where row and column are integers")
13361343

13371344
for cell in cells:
13381345
xcell = wks.cell(
@@ -1419,9 +1426,16 @@ def write_cells(self, cells, sheet_name=None, startrow=0, startcol=0,
14191426
self.sheets[sheet_name] = wks
14201427

14211428
if freeze_panes is not None:
1422-
wks.set_panes_frozen(True)
1423-
wks.set_horz_split_pos(freeze_panes[0])
1424-
wks.set_vert_split_pos(freeze_panes[1])
1429+
if (
1430+
len(freeze_panes) == 2 and
1431+
all(isinstance(item, int) for item in freeze_panes)
1432+
):
1433+
wks.set_panes_frozen(True)
1434+
wks.set_horz_split_pos(freeze_panes[0])
1435+
wks.set_vert_split_pos(freeze_panes[1])
1436+
else:
1437+
raise ValueError("freeze_panes must be of form (row, column)"
1438+
" where row and column are integers")
14251439

14261440
style_dict = {}
14271441

@@ -1551,7 +1565,14 @@ def write_cells(self, cells, sheet_name=None, startrow=0, startcol=0,
15511565
style_dict = {}
15521566

15531567
if freeze_panes is not None:
1554-
wks.freeze_panes(*(freeze_panes))
1568+
if (
1569+
len(freeze_panes) == 2 and
1570+
all(isinstance(item, int) for item in freeze_panes)
1571+
):
1572+
wks.freeze_panes(*(freeze_panes))
1573+
else:
1574+
raise ValueError("freeze_panes must be of form (row, column)"
1575+
" where row and column are integers")
15551576

15561577
for cell in cells:
15571578
val = _conv_value(cell.val)

0 commit comments

Comments
 (0)