应用场景:
公司里会有这样的场景:公司有一个系统的数据需要根据excel表中数据进行维护,但数据量比较大,此时就需要对系统数据与Excel中数据进行比对,人工核对工作量太大并且容易出错,这时可以将系统数据导出到Excel中,然后将两个Excel数据进行比对?
运行效果如下:
表一和表二对应位置数据数据不一致进行黄底标注,这样就很容易知道哪些数据存在差异,这里要保证两张表的数据结构相同
实现步骤
导入模块
from openpyxl.styles import PatternFill
from openpyxl.styles import colors
from openpyxl.styles import Font
import openpyxl as vb
读取两张表中的数据
url_a=r'D:\1.xlsx'
url_b=r'D:\2.xlsx'
workbook_a = vb.load_workbook(url_a)
workbook_b = vb.load_workbook(url_b)
sheet_a = workbook_a['Sheet1']
sheet_b = workbook_b['Sheet1']
maxrow = sheet_a.max_row
maxcolumn = sheet_b.max_column
遍历两张表中所有的单元格
for i in range(1,maxrow):
for j in range(1,maxcolumn):
cell_a=sheet_a.cell(i,j)
cell_b = sheet_b.cell(i, j)
比较对应单元格的数据
如果数值不同就蓝色加粗并标注黄色底色
if cell_a.value!=cell_b.value:
print(cell_a.value)
print(cell_b.value)
cell_a.fill = PatternFill("solid", fgColor="FFFF00")
cell_a.font = Font(color=colors.BLUE,bold=True)
cell_b.fill = PatternFill("solid", fgColor="FFFF00")
cell_b.font = Font(color=colors.BLUE,bold=True)
保存数据
workbook_a.save(url_a)
workbook_b.save(url_b)
当然我们可以利用pyinstaller将程序打包成exe文件,这样就可以在windows系统电脑上直接运行