要比较两个不同工作表中的所有单元格并找出不匹配的列表,可以使用Python的openpyxl库。下面是一个包含代码示例的解决方法:
from openpyxl import load_workbook
def compare_worksheets(file1, file2):
# 加载工作簿
workbook1 = load_workbook(filename=file1)
workbook2 = load_workbook(filename=file2)
# 获取所有工作表的名称
sheets1 = workbook1.sheetnames
sheets2 = workbook2.sheetnames
# 比较每个工作表中的单元格
for sheet in sheets1:
if sheet in sheets2:
# 获取工作表对象
worksheet1 = workbook1[sheet]
worksheet2 = workbook2[sheet]
# 获取最大行数和最大列数
max_row = max(worksheet1.max_row, worksheet2.max_row)
max_column = max(worksheet1.max_column, worksheet2.max_column)
# 比较每个单元格的值
for row in range(1, max_row + 1):
for column in range(1, max_column + 1):
cell1 = worksheet1.cell(row=row, column=column)
cell2 = worksheet2.cell(row=row, column=column)
if cell1.value != cell2.value:
print(f"不匹配的单元格:{sheet} - 行{row} 列{column}")
else:
print(f"工作表 {sheet} 在第二个文件中不存在。")
# 调用函数进行比较
compare_worksheets("文件1.xlsx", "文件2.xlsx")
以上代码首先使用load_workbook
函数加载两个工作簿的文件。然后,通过sheetnames
属性获取每个工作簿的所有工作表名称。接下来,使用双重循环遍历每个工作表中的所有单元格,并使用cell.value
比较两个单元格中的值。如果值不匹配,则打印出不匹配的单元格所在的工作表、行数和列数。
请确保在运行代码之前安装了openpyxl库。可以使用以下命令在命令行中安装openpyxl:
pip install openpyxl
请将"文件1.xlsx"和"文件2.xlsx"替换为要比较的实际文件名。