N109_python脚本(比较两个Excel表格的不同并标记)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cIDoTRIZ-1667173630858)(attachment:image.png)]

在这里插入图片描述

%%time
# #导入模块 openpyxl
import openpyxl
from openpyxl.styles import PatternFill
from openpyxl.styles import colors
from openpyxl.styles import Font
import openpyxl as vb
url_a='C:/Users/wj/Desktop/实验.xlsx'
url_b='C:/Users/wj/Desktop/实验2.xlsx'
workbook_a = vb.load_workbook(url_a)
workbook_b = vb.load_workbook(url_b)
sheet_a = workbook_a.active
sheet_b = workbook_b.active
maxrow = sheet_a.max_row
maxcolumn = sheet_a.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:
            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)
CPU times: total: 93.8 ms
Wall time: 91.7 ms
# python脚本(比较两个Excel表格的不同并标记)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import openpyxl
from openpyxl.styles import PatternFill
from openpyxl.styles import colors
from openpyxl.styles import Font, Color
import copy
biao1='C:/Users/wj/Desktop/实验.xlsx'
biao2='C:/Users/wj/Desktop/实验2.xlsx'
#读取excel文件
#括号中的字符串为你要比较的两个excel的路径,注意用“/”
wb_a = openpyxl.load_workbook(biao1)
wb_b = openpyxl.load_workbook(biao2)
#定义一个方法来获取表格中某一列的内容,返回一个列表
#将每一列输出为一个列表(temp表示列的名字)
def getIP(wb,temp):
    sheet = wb.active
    ip = []
    for cellobj in sheet[temp]:
        ip.append(cellobj.value)
    return ip
#想比较哪几列就输入那几列的名称
list1 = ['A','B','C','D','E','F','G','H','I']
list2 = []#用于存每列不同的值
differ1 = {}#第一个文件中每列不同的列表组成字典
differ2 = {}#第二个文件中每列不同的列表组成字典
for temp1 in list1:
    #获得ip列表
    ip_a = getIP(wb_a,temp1)
    ip_b = getIP(wb_b,temp1)
    #将两个列表转换成集合
    aa = set(ip_a)
    bb = set(ip_b)
    #找出两个列表的不同行,并转换成列表
    difference = list(aa ^ bb)
    del list2[0:]
    a = wb_a.active[temp1]
    for cellobj in a:
        if cellobj.value in difference:
            cellobj.font = Font(color=colors.BLACK, italic=True ,bold = True)
            cellobj.fill = PatternFill("solid", fgColor="DDDDDD")
            list2.append(cellobj.value)
    if list2!=[]:
        differ1[temp1]=copy.deepcopy(list2)
    del list2[0:]
    b = wb_b.active[temp1]
    for cellobj in b:
        if cellobj.value in difference:
            cellobj.font = Font(color=colors.BLACK, italic=True ,bold = True)
            cellobj.fill = PatternFill("solid", fgColor="DDDDDD")
            list2.append(cellobj.value)
    if list2!=[]:
        differ2[temp1]=copy.deepcopy(list2)
wb_a.save(biao1)
wb_b.save(biao2)

dict_items([('B', [876, 467, 628, 162, 589, 576, 542]), ('F', [216])])
dict_items([('B', [1, 2, 3, 4, 5, 6, 7]), ('F', [5555])])
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kafeihule

感谢老板

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值