本节利用xlwings对比两个excel并高亮显示修改部分,最终效果如图:
在两个文件中都高亮显示不同的区域,便于对比修改痕迹。
关于xlwings注意事项
- xlwings需要安装excel应用软件,支持.xls和.xlsx
- openpyxl不需要安装excel应用软件
首先要pip安装xlwings,再导入模块:
import xlwings as xw
关于 xlwings -> App -> Book -> Sheet -> Range
- App:可以理解为Excel应用程序,或者可理解做一个处理Excel的进程
- Book:可理解为一个Excel表
- Sheet:可理解为一个Excel内的工作表Sheet
- Range:可理解为一个单元格。sheet.range()就可以获取一个cell。
① 打开一个操作Excel的进程
- visible:进程是否显示在前台。False即后台运行,True会在前台有显示。
- add_book:是否新建Excel表。
app = xw.App(visible=False, add_book=False)
② 导入Excel文件
book1 = app.books.open("../test3/data1.xlsx")
book2 = app.books.open("../test3/data1_2.xlsx")
③ 对比高亮
for row in book2.sheets[0].range("A1").expand():
for cell2 in row:
cell1 = book1.sheets[0].range(cell2.address)
if cell2.value != cell1.value:
cell2.color = cell1.color = (255, 0, 0)
④ 保存退出并kill进程
book1.save()
book1.close()
book2.save()
book2.close()
app.kill()
按照以上步骤,即可得到想要的对比高亮效果。