Add special handling for rows 25-27 in Graphics sheet to fix formula links
This commit is contained in:
@@ -165,9 +165,31 @@ def update_formulas_in_workbook(workbook, sheet_name_mapping):
|
|||||||
sheet_updates = 0
|
sheet_updates = 0
|
||||||
print(f"Checking formulas in sheet: {sheet_name}")
|
print(f"Checking formulas in sheet: {sheet_name}")
|
||||||
|
|
||||||
|
# Special handling for Graphics sheet rows 25-27
|
||||||
|
if sheet_name == "Graphics":
|
||||||
|
# Directly access cells in rows 25-27
|
||||||
|
for row_num in range(25, 28): # 25, 26, 27
|
||||||
|
for col_idx in range(1, sheet.max_column + 1):
|
||||||
|
cell_coord = f"{get_column_letter(col_idx)}{row_num}"
|
||||||
|
cell = sheet[cell_coord]
|
||||||
|
if cell.data_type == 'f' and cell.value and isinstance(cell.value, str) and '{store_name}' in cell.value:
|
||||||
|
print(f"Special handling for Graphics cell {cell_coord}: {cell.value}")
|
||||||
|
original_formula = cell.value
|
||||||
|
updated_formula = original_formula
|
||||||
|
for old_name, new_name in sheet_name_mapping.items():
|
||||||
|
updated_formula = updated_formula.replace(old_name, new_name)
|
||||||
|
|
||||||
|
if updated_formula != original_formula:
|
||||||
|
cell.value = updated_formula
|
||||||
|
print(f"Force updated formula in {sheet_name} cell {cell_coord}")
|
||||||
|
|
||||||
# Iterate through all cells in the sheet
|
# Iterate through all cells in the sheet
|
||||||
for row in sheet.iter_rows():
|
for row in sheet.iter_rows():
|
||||||
for cell in row:
|
for cell in row:
|
||||||
|
# Skip rows 25-27 in Graphics sheet as they're handled separately
|
||||||
|
if sheet_name == "Graphics" and cell.row >= 25 and cell.row <= 27:
|
||||||
|
continue
|
||||||
|
|
||||||
# Check if the cell contains a formula
|
# Check if the cell contains a formula
|
||||||
if cell.data_type == 'f' and cell.value:
|
if cell.data_type == 'f' and cell.value:
|
||||||
try:
|
try:
|
||||||
@@ -217,7 +239,7 @@ def update_formulas_in_workbook(workbook, sheet_name_mapping):
|
|||||||
formula = new_formula
|
formula = new_formula
|
||||||
formula_updated = True
|
formula_updated = True
|
||||||
|
|
||||||
# Handle other potential reference formats
|
# Handle other potential reference formats
|
||||||
# This catches references without quotes or special formatting
|
# This catches references without quotes or special formatting
|
||||||
pattern5 = f"({re.escape(old_name)})"
|
pattern5 = f"({re.escape(old_name)})"
|
||||||
replacement5 = f"{new_name}"
|
replacement5 = f"{new_name}"
|
||||||
@@ -228,6 +250,8 @@ def update_formulas_in_workbook(workbook, sheet_name_mapping):
|
|||||||
if new_formula != formula:
|
if new_formula != formula:
|
||||||
formula = new_formula
|
formula = new_formula
|
||||||
formula_updated = True
|
formula_updated = True
|
||||||
|
|
||||||
|
# We're handling rows 25-27 separately now, so this section is no longer needed
|
||||||
|
|
||||||
# If the formula was changed, update the cell
|
# If the formula was changed, update the cell
|
||||||
if formula_updated:
|
if formula_updated:
|
||||||
|
|||||||
Reference in New Issue
Block a user