首页 > 编程语言 >使用Python openpyxl找出两个文件的差异之处并标记

使用Python openpyxl找出两个文件的差异之处并标记

时间:2023-12-12 10:00:48浏览次数:38  
标签:xlsx sheet openpyxl 标记 Python max cell workbook

# It imports the PatternFill class from the openpyxl.styles module.
from openpyxl.styles import PatternFill

# It imports the colors class from the openpyxl.styles module.
from openpyxl.styles import colors

# It imports the Font class from the openpyxl.styles module.
from openpyxl.styles import Font

# It imports the openpyxl module and renames it as pxl.
import openpyxl as pxl

# It loads the data1.xlsx file and assigns it to the workbook_1 variable.
workbook_1 = pxl.load_workbook(r'D:\data\1.xlsx')

# It loads the data2.xlsx file and assigns it to the workbook_2 variable.
workbook_2 = pxl.load_workbook(r'D:\data\2.xlsx')

# Assigning the Sheet1 object to the workbook_1_sheet_1 variable.
workbook_1_sheet_1 = workbook_1['Sheet1']

# It assigns the Sheet1 object to the workbook_2_sheet_1 variable.
workbook_2_sheet_1 = workbook_2['Sheet1']

# A ternary operator. It is equivalent to:
max_row = workbook_1_sheet_1.max_row if workbook_1_sheet_1.max_row > workbook_2_sheet_1.max_row else workbook_2_sheet_1.max_row

# A ternary operator. It is equivalent to:
max_column = workbook_1_sheet_1.max_column if workbook_1_sheet_1.max_column > workbook_2_sheet_1.max_column else workbook_2_sheet_1.max_column

# 创建一个新表,用来存储新的数据,在sheet1 中,不在sheet2 中的
new_sheet = workbook_1.create_sheet('差异新增数据')

# 新表第一行输入
new_sheet.append(['姓名', '身份证'])

# 遍历2到n行的身份证数据,不包含第一行表头
for i in range(2, (max_row + 1)):
    # 取出第i行 身份证数据 ,
    tmp1 = workbook_1_sheet_1.cell(i, 1)
    tmp_data = tmp1.value
    # 取出第i行身份数据,姓名
    tmp2 = workbook_1_sheet_1.cell(i,2)
    tmp_name = tmp2.value
    find_flag = True
    for j in range(2, (max_row + 1)):
        cell_2 = workbook_2_sheet_1.cell(j, 1)
        # 如果,找到相似的数据,标记
        if tmp_data == cell_2.value:
            tmp1.fill = PatternFill("solid", fgColor='FFFF00')
            tmp1.font = Font(color=colors.BLACK, bold=True)
            cell_2.fill = PatternFill("solid", fgColor='FFFF00')
            cell_2.font = Font(color=colors.BLACK, bold=True)
            find_flag = False
            break
    if find_flag:
        # 如果没找到,添加新数据
        new_sheet.append([tmp_name, tmp_data])

# It saves the workbook_1 object to the 3.xlsx file.
workbook_1.save(r'D:\data\3.xlsx')

# It saves the workbook_2 object to the 4.xlsx file.
workbook_2.save(r'D:\data\4.xlsx')



print("标记完成")

标签:xlsx,sheet,openpyxl,标记,Python,max,cell,workbook
From: https://www.cnblogs.com/ljincheng/p/17896134.html

相关文章

  • python的 __enter__ 和 __exit__方法,上下文管理器
    在Python中,类并没有专门的exit方法。但是,如果你想在对象生命周期结束时执行某些操作,你可以使用特殊的方法__enter__和__exit__,这与Python上下文管理器(ContextManager)相关。__enter__方法:当进入with代码块时,__enter__方法会被调用。__exit__方法:当退出with......
  • 软件测试/人工智能|Python数据可视化神器pyecharts教程(一)
    前言在很多时候,枯燥的数字并不能很直观的展示地域的差别,比如一个企业,想要分析产品在国内的销售情况,报表可能并不能最直接的展示差异,而一个结合地图的展示,就会直观得多,更便于大家去看到差距,更利于决策。当然,除了做商业决策,将数据与地图结合,也更便于我们展示诸如人口密度,经济总量等数......
  • 粉碎文件代码 python
    粉碎文件是指将文件彻底删除,使其无法恢复。在计算机领域,我们通常使用编程语言来实现该功能。本文将介绍如何使用Python编程语言来粉碎文件,并提供相应的代码示例。什么是文件粉碎?在计算机中,当我们删除一个文件时,实际上只是将该文件从文件系统的文件目录中删除,并不是真正地将文件内......
  • 读取pkl python
    如何读取pkl文件作为一名经验丰富的开发者,很高兴能够帮助你解决关于读取pkl文件的问题。在本文中,我将向你介绍读取pkl文件的步骤和相应的Python代码,并提供详细的解释。让我们开始吧!读取pkl文件的流程在开始编写代码之前,先让我们了解一下整个读取pkl文件的流程。下面是一个简单的......
  • 盘点一个Python自动化办公的实战问题
    大家好,我是皮皮。一、前言前几天在Python白银交流群【东哥】问了一个Python自动化办公的问题,一起来看看吧。问题描述:大佬们,这个Excel表格中,针对C列到N列,我想要取每一行的数字,最后输出一句话,如针对第二行数据的话最后生成:该订单对应7个J01140300003、27个J01140300006;第三行数据......
  • 软件测试/人工智能|Python数据可视化神器pyecharts教程(二)
    前言上一篇文章,我们介绍了如何使用pyecharts展示带地图的数据分析结果,并且实际绘制了省份图和全国城市图,用于展示数据。本文我们继续来使用pyecharts绘制以地图为基础的图像。绘制分段图但是我们在绘制全国的图形时,没有考虑考虑到将不同级别的数据进行分层,比如每一段的颜色不一......
  • 软件测试/人工智能|Python数据可视化神器pyecharts教程(三)
    前言前面两篇文章,我们主要介绍了绘制基本的地图以及数据展示图,其实我们可以在地图上绘制更多类型的图形,本文就来继续介绍在地图的基础上进行我们的数据可视化工作。绘制轨迹图每年春运,都是大部分的人从北上广深等发达地区回到广大的中西部地区,春节之后,再从广大的中西部地区回到......
  • 软件测试/人工智能|Python数据可视化神器pyecharts教程(一)
    前言在很多时候,枯燥的数字并不能很直观的展示地域的差别,比如一个企业,想要分析产品在国内的销售情况,报表可能并不能最直接的展示差异,而一个结合地图的展示,就会直观得多,更便于大家去看到差距,更利于决策。当然,除了做商业决策,将数据与地图结合,也更便于我们展示诸如人口密度,经济总量......
  • Python学习5
    jsonjson是一种轻量级的数据交互格式,可以按照json指定的格式去组织和封装数据.python语言使用json有很大优势,因为,json无非就是一个单独的字典或者一个内部元素都是字典的列表,所以,json可以直接和Python的字典或者列表进行无缝转换。json本质上是一个带有特定格式的字符串主要功......
  • 【python基础之命名空间与作用域】---命名空间与作用域
    title:【python基础之命名空间与作用域】---命名空间与作用域date:2023-12-1118:44:060updated:2023-12-1118:44:00description:cover:https://home.cnblogs.com/u/dream-ze/【一】名称空间与闭包【1】什么是名称空间名称空间即存放名字与对象映射/绑......