3
3
from typing import (
4
4
TYPE_CHECKING ,
5
5
Any ,
6
+ Tuple ,
7
+ cast ,
6
8
)
7
9
8
10
import pandas ._libs .json as json
9
- from pandas ._typing import StorageOptions
11
+ from pandas ._typing import (
12
+ FilePath ,
13
+ StorageOptions ,
14
+ WriteExcelBuffer ,
15
+ )
10
16
11
17
from pandas .io .excel ._base import ExcelWriter
12
18
from pandas .io .excel ._util import (
@@ -24,11 +30,11 @@ class XlwtWriter(ExcelWriter):
24
30
25
31
def __init__ (
26
32
self ,
27
- path ,
28
- engine = None ,
29
- date_format = None ,
30
- datetime_format = None ,
31
- encoding = None ,
33
+ path : FilePath | WriteExcelBuffer | ExcelWriter ,
34
+ engine : str | None = None ,
35
+ date_format : str | None = None ,
36
+ datetime_format : str | None = None ,
37
+ encoding : str | None = None ,
32
38
mode : str = "w" ,
33
39
storage_options : StorageOptions = None ,
34
40
if_sheet_exists : str | None = None ,
@@ -57,7 +63,7 @@ def __init__(
57
63
self .fm_datetime = xlwt .easyxf (num_format_str = self .datetime_format )
58
64
self .fm_date = xlwt .easyxf (num_format_str = self .date_format )
59
65
60
- def save (self ):
66
+ def save (self ) -> None :
61
67
"""
62
68
Save workbook to disk.
63
69
"""
@@ -66,8 +72,13 @@ def save(self):
66
72
self .book .save (self .handles .handle )
67
73
68
74
def write_cells (
69
- self , cells , sheet_name = None , startrow = 0 , startcol = 0 , freeze_panes = None
70
- ):
75
+ self ,
76
+ cells ,
77
+ sheet_name : str | None = None ,
78
+ startrow : int = 0 ,
79
+ startcol : int = 0 ,
80
+ freeze_panes : tuple [int , int ] | None = None ,
81
+ ) -> None :
71
82
72
83
sheet_name = self ._get_sheet_name (sheet_name )
73
84
@@ -78,6 +89,7 @@ def write_cells(
78
89
self .sheets [sheet_name ] = wks
79
90
80
91
if validate_freeze_panes (freeze_panes ):
92
+ freeze_panes = cast (Tuple [int , int ], freeze_panes )
81
93
wks .set_panes_frozen (True )
82
94
wks .set_horz_split_pos (freeze_panes [0 ])
83
95
wks .set_vert_split_pos (freeze_panes [1 ])
@@ -111,7 +123,7 @@ def write_cells(
111
123
112
124
@classmethod
113
125
def _style_to_xlwt (
114
- cls , item , firstlevel : bool = True , field_sep = "," , line_sep = ";"
126
+ cls , item , firstlevel : bool = True , field_sep : str = "," , line_sep : str = ";"
115
127
) -> str :
116
128
"""
117
129
helper which recursively generate an xlwt easy style string
@@ -150,7 +162,9 @@ def _style_to_xlwt(
150
162
return item
151
163
152
164
@classmethod
153
- def _convert_to_style (cls , style_dict , num_format_str = None ):
165
+ def _convert_to_style (
166
+ cls , style_dict , num_format_str : str | None = None
167
+ ) -> XFStyle :
154
168
"""
155
169
converts a style_dict to an xlwt style object
156
170
0 commit comments