首页 > 编程知识 正文

两个sheet表中查找不同数据,python筛选excel数据

时间:2023-05-06 03:10:15 阅读:125563 作者:3744

解决方法如下。

用Python写一个小脚本吧:

#! /usr/烂漫的万宝路/env python

#-* -编码: utf-8-* -

#导入模块openpyxl

导入openpyxl

fromopenpyxl.stylesimportpatternfill

fromopenpyxl.stylesimportcolors

from openpyxl.styles import Font,Color

导入excel文件

#括号中的字符串是要比较的两个excel的路径。 请注意使用“/”

WB _ a=openpyxl.load _ workbook (d :/bak file/d 046532/desktop/check excel/test.xlsx ' )

WB _ b=openpyxl.load _ workbook (d :/bak file/d 046532/desktop/check excel/test2. xlsx ' )

#定义获取表中列的内容并返回列表的方法

#其中,在我的表中,IP是唯一的,因此用于区分数据差异,而IP列在我的表中是第g列

defgetip(WB ) :

sheet=wb.get_active_sheet (

ip=[]

for cellobj in sheet['G']:

IP.append(cellobj.value ) )。

返回IP

#获取IP列表

IP_a=getip(WB_a ) ) )

IP_b=getip(WB_b ) ) )

#将两个列表转换为收藏

a=set(IP_a ) )。

bb=set(IP_b ) ) )

#找到两个列表中的不同行,并将其转换为列表

差异=列表(aa ^ bb ) )

#打印列表中的元素

#到此为止,找到了两个表的不同数据

for i in difference:

是打印(I )

#不同行,高亮显示

print ()第一个表格()---- () *10 ) ) )。

a=wb_a.get_active_sheet () ['G']

for cellobj in a:

ifcellobj.value indifference :

打印(cell obj.value ) )。

cell obj.font=font (color=colors.black,italic=True,bold=True ) ) )。

cell obj.fill=pattern fill (' solid ',fgColor='DDDDDD () ) ) ) ) ) ) )。

print ()第二张表((----) *10 ) ) ) )。

b=wb_b.get_active_sheet () ['G']

for cellobj in b:

ifcellobj.value indifference :

打印(cell obj.value ) )。

cell obj.font=font (color=colors.black,italic=True,bold=True ) ) )。

cell obj.fill=pattern fill (' solid ',fgColor='DDDDDD () ) ) ) ) ) ) )。

WB _ a.save (d :/bak file/d 046532/desktop/a.xlsx ' )

WB _ b.save (d :/bak file/d 046532/desktop/b.xlsx ' )

这将保存两个excel的副本。

此副本用单元格填充颜色和字体颜色标记两个表格中不同数据的差异。

我希望对你有帮助哦~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。