

# 使用提醒:
# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能
# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能
# 3. 当此模块作为流程独立运行时执行main函数
# 4. 可视化流程中可以通过"调用模块"的指令使用此模块
import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv
from openpyxl import load_workbook
def replace_formula(path1, path2):
'''
path1 需要替换公式的excel文件路径
path2 另存为的excel文件路径
'''
# 加载Excel工作簿
workbook = load_workbook(path1,data_only=True)
# 获取活动的工作表
worksheet = workbook.active
# 获取所有合并单元格的范围
merged_cell_ranges = worksheet.merged_cells.ranges
# 将合并单元格的范围转换为单元格坐标列表
merged_cells = set()
for merged_range in merged_cell_ranges:
for row in worksheet.iter_rows(min_row=merged_range.min_row,
max_row=merged_range.max_row,
min_col=merged_range.min_col,
max_col=merged_range.max_col):
for cell in row:
merged_cells.add(cell.coordinate)
# 遍历所有单元格
for row in worksheet.iter_rows():
for cell in row:
# 检查单元格是否包含公式并且不是合并区域中的非左上角单元格
if cell.coordinate not in merged_cells and cell.value is not None:
if isinstance(cell.value, str) and cell.value.startswith('='):
# 计算公式的结果值
# 注意:这里你需要一个真实的公式计算器或者Excel实例
cell.value = cell.value[1:]
# 保存工作簿
workbook.save(path2)
return path2

代码是gpt写的,稍加修改了下,希望遇到这个问题的朋友,直接拷贝代码,开箱即用,非常方便。