from openpyxl import load_workbook from datetime import datetime # Define the data data = { "customer": "xxxx", "inspect_date": "2025-01-15", "lot_no": "12345", "size": "Large", "pcs": "10 pcs", "spec": "Spec-A", "d1_act": "10", "d2_act": "0", # Adjust this to test hiding `No.2` table } # Load the Excel template template_path = "./hardness.xlsx" # Replace with your template file path workbook = load_workbook(template_path) sheet = workbook.active # Replace placeholders with actual values for row in sheet.iter_rows(): for cell in row: if cell.value and isinstance(cell.value, str) and cell.value.startswith("<") and cell.value.endswith(">"): placeholder = cell.value.strip("<>") if placeholder in data: cell.value = data[placeholder] # Hide `No.2` table if `d2_act` is 0 if data.get("d2_act") == "0": # Adjust the range to the actual No.2 table location in your template table_start_row = 20 # Replace with the actual start row of the No.2 table table_end_row = 25 # Replace with the actual end row of the No.2 table table_start_col = 1 # Starting column for the table table_end_col = 5 # Ending column for the table # Clear only non-merged cells sheet.row_dimensions.group(24, 28, hidden=True) # Save the updated file with a timestamp timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") output_path = f"hardness_filled_{timestamp}.xlsx" workbook.save(output_path) print(f"File saved as {output_path}")