From 506dd2d1169c04658edc01da056f7e47896cc2ae Mon Sep 17 00:00:00 2001 From: "Bobby Abellana (aider)" Date: Thu, 13 Feb 2025 14:39:26 -0800 Subject: [PATCH] feat: Enhance Excel file copying with sheet properties preservation --- src/main.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/main.py b/src/main.py index 1214fbe..2d49f0d 100644 --- a/src/main.py +++ b/src/main.py @@ -118,6 +118,32 @@ def copy_excel_file(source_path, destination_path, passwords): dest_cell.protection = copy(cell.protection) dest_cell.alignment = copy(cell.alignment) + # Copy sheet properties + # Freeze panes + if source_sheet.freeze_panes: + dest_sheet.freeze_panes = source_sheet.freeze_panes + + # Column dimensions + for col in source_sheet.column_dimensions: + dest_sheet.column_dimensions[col] = copy(source_sheet.column_dimensions[col]) + + # Row dimensions + for row in source_sheet.row_dimensions: + dest_sheet.row_dimensions[row] = copy(source_sheet.row_dimensions[row]) + + # Sheet properties + if hasattr(source_sheet, 'sheet_properties'): + dest_sheet.sheet_properties = copy(source_sheet.sheet_properties) + + # Sheet view properties + if hasattr(source_sheet, 'sheet_view'): + dest_sheet.sheet_view = copy(source_sheet.sheet_view) + + # Merged cells + if source_sheet.merged_cells: + for merged_range in source_sheet.merged_cells: + dest_sheet.merge_cells(str(merged_range)) + os.makedirs(os.path.dirname(destination_path), exist_ok=True) logging.debug(f"Destination directory ensured: {os.path.dirname(destination_path)}")