@@ -68,15 +68,19 @@ def __init__(
6868
6969 self .book = load_workbook (self .handles .handle , ** engine_kwargs )
7070 self .handles .handle .seek (0 )
71- self .sheets = {name : self .book [name ] for name in self .book .sheetnames }
72-
7371 else :
7472 # Create workbook object with default optimized_write=True.
7573 self .book = Workbook (** engine_kwargs )
7674
7775 if self .book .worksheets :
7876 self .book .remove (self .book .worksheets [0 ])
7977
78+ @property
79+ def sheets (self ) -> dict [str , Any ]:
80+ """Mapping of sheet names to sheet objects."""
81+ result = {name : self .book [name ] for name in self .book .sheetnames }
82+ return result
83+
8084 def save (self ) -> None :
8185 """
8286 Save workbook to disk.
@@ -440,7 +444,6 @@ def write_cells(
440444 target_index = self .book .index (old_wks )
441445 del self .book [sheet_name ]
442446 wks = self .book .create_sheet (sheet_name , target_index )
443- self .sheets [sheet_name ] = wks
444447 elif self .if_sheet_exists == "error" :
445448 raise ValueError (
446449 f"Sheet '{ sheet_name } ' already exists and "
@@ -458,7 +461,6 @@ def write_cells(
458461 else :
459462 wks = self .book .create_sheet ()
460463 wks .title = sheet_name
461- self .sheets [sheet_name ] = wks
462464
463465 if validate_freeze_panes (freeze_panes ):
464466 freeze_panes = cast (Tuple [int , int ], freeze_panes )
0 commit comments