你可以使用openpyxl库来比较两个工作簿中的动态范围,并获取值。下面是一个示例代码:
from openpyxl import load_workbook
def compare_dynamic_ranges(file1, file2):
# 加载两个工作簿
wb1 = load_workbook(file1)
wb2 = load_workbook(file2)
# 获取第一个工作簿中的所有工作表
sheets1 = wb1.sheetnames
for sheet_name in sheets1:
# 获取第一个工作簿中的动态范围
sheet1 = wb1[sheet_name]
range1 = sheet1.calculate_dimension()
# 获取第二个工作簿中对应工作表的动态范围
sheet2 = wb2[sheet_name]
range2 = sheet2.calculate_dimension()
if range1 != range2:
print(f"工作表 '{sheet_name}' 的动态范围不一致")
# 获取第一个工作簿中的动态范围中的值
values1 = sheet1.iter_rows(values_only=True)
values2 = sheet2.iter_rows(values_only=True)
for row1, row2 in zip(values1, values2):
for cell1, cell2 in zip(row1, row2):
if cell1 != cell2:
print(f"工作表 '{sheet_name}' 中的值不一致")
# 关闭工作簿
wb1.close()
wb2.close()
# 用法示例
compare_dynamic_ranges("workbook1.xlsx", "workbook2.xlsx")
这段代码假设你已经安装了openpyxl库,并且将要比较的两个工作簿文件分别命名为"workbook1.xlsx"和"workbook2.xlsx"。你可以根据实际情况进行修改。代码会逐个比较两个工作簿中的工作表的动态范围,并输出不一致的情况。然后,它会逐个比较动态范围中的值,并输出不一致的情况。