首页 > 其他分享 >EXCEL表格内容差异比较

EXCEL表格内容差异比较

时间:2024-11-08 15:15:54浏览次数:3  
标签:表格 font1 差异 EXCEL cell 字体 workbook font2 fill

此代码是将两个相同结构的EXCEL表格内容差异的比较,并作标记
内容差异: 1)填充色比较差异
          2)单元格值比较,不包括格式信息,如字体、颜色、大小等
          3)字体的名称、大小、是否加粗、是否斜体、是否有下划线以及颜色是否相同
from openpyxl.styles import PatternFill, Font
from openpyxl.styles.colors import BLUE
import openpyxl as vb
from datetime import datetime
# 此代码是将两个相同结构的EXCEL表格内容差异的比较,并作标记
# 内容差异: 1)填充色比较差异
#          2)单元格值比较不包括格式信息,如字体、颜色、大小等
#          3)字体的名称、大小、是否加粗、是否斜体、是否有下划线以及颜色是否相同

# 定义比较填充色的函数
def compare_fills(fill1, fill2):
    if fill1.fill_type != fill2.fill_type:
        return False
    if fill1.fill_type == "solid":
        return fill1.fgColor == fill2.fgColor
    # 可以添加其他填充类型的比较,例如渐变填充等
    return True

# 定义比较字体的函数
def compare_fonts(font1, font2):
    return (font1.name == font2.name and
            font1.size == font2.size and
            font1.bold == font2.bold and
            font1.italic == font2.italic and
            font1.underline == font2.underline and
            font1.color == font2.color)

workbook_a = vb.load_workbook(r'表1.3.xlsx')
workbook_b = vb.load_workbook(r'表1.4.xlsx')
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 + 1):
    for j in range(1, maxcolumn + 1):
        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="FF0000")  # 浅紫色填充
            cell_a.font = Font(color=BLUE, bold=True)  # 蓝色字体加粗

        # 比较单元格的填充色
        if not compare_fills(cell_a.fill, cell_b.fill):
            cell_a.fill = PatternFill("solid", fgColor="FF0000")  # 浅紫色填充
            cell_a.font = Font(color=BLUE, bold=True)  # 蓝色字体加粗

        # 比较单元格的字体
        if not compare_fonts(cell_a.font, cell_b.font):
            cell_a.font = Font(color=BLUE, bold=True)  # 蓝色字体加粗
            cell_a.fill = PatternFill("solid", fgColor="FFBBFF")  # 浅紫色填充

current_time = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
workbook_a.save(f'{current_time}.xlsx')

原始数据:

效果:

标签:表格,font1,差异,EXCEL,cell,字体,workbook,font2,fill
From: https://blog.csdn.net/qq_45173172/article/details/143627016

相关文章

  • vue 表格头部创建
    <template> <viewclass="content"> <divclass="table"> <divclass="headflexCenterBox"> <divclass="line"v-for="(item,index)inparam":key="index"> ......
  • 使用金鸣识别大师将驾驶证信息转为结构化Excel的教程
    在当今信息化社会,将纸质文档快速转化为数字化、结构化的数据变得尤为重要。金鸣表格文字识别大师作为一款文字识别软件,能够轻松地将驾驶证等证件信息转化为结构化的Excel数据。以下将详细介绍如何使用金鸣表格文字识别大师将驾驶证信息转化为结构化Excel。一、下载安装金鸣表......
  • 真题练习45-Excel电子表格-全国计算机等级考试一级计算机基础及MS Office应用考试【汪
    第45组请根据题目要求,完成下列操作:打开考生文件夹下的电子表格,打开EXCEL.XLSX工作簿文件,按照下列要求完成对此表格的操作并保存。1.选择Sheet1工作表,将A1:G1单元格合并为一个单元格,文字居中对齐;计算每个员工A、B、C三种产品的销售额(每种产品的单价见Sheet1工作表I3:J6单元格......
  • SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能
    @目录项目整体描述页面图简介:功能概括说明具体功能举例代码介绍首页index.html操作成功跳转hello.html首页跳转index.html代码方法1:读取指定的Excel方法2:读取上传的Excel里面的内容方法3:java单文件导入Excel,保存到target的目录下方法4:java多文件导入Excel,保存到target的目录下方......
  • 用numpy将nc批量转的降雨表格按市县整理成逐年逐月降雨
    之前用arcmap的模型工具将nc文件转tif后,提取降雨数据到excel中,距离最终需要的数据还是有一定的差距。需要用到Python进行处理。                         1、降雨需要的格式做高标准农田,水资源平衡分析,用到的历年降雨资料......
  • 【PDF提取神器】最新推出的PymuPDF4llm库 可提取pdf中的文字/表格/图像/单词
    目录前言安装Pymupdf4llm多模态具体应用API文档前言PymuPDF4llm是最新推出的pdf提取工具,针对LLM进行了专门优化,它支持markdown提取和LlamaIndex文档输出,可以准确提取pdf中的结构化数据,包括文字/表格/图像/单词,其中文字以markdown的形式提取,图像则以路径的形式插入到文......
  • powerdesigner导出excel
     '******************************************************************************OptionExplicitDimrowsNumrowsNum=0'-----------------------------------------------------------------------------'Mainfunction'----------......
  • IntersectionObserver实现H5表格触底加载
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>Document</title&g......
  • VBA(Visual Basic for Applications)宏是用于在Microsoft Office应用程序(如Excel、Word
    在MicrosoftWord中,VBA(VisualBasicforApplications)宏是一种非常强大的自动化工具,它能够帮助你在文档中执行一系列自动化操作,比如格式化、批量修改、数据处理等。下面是如何在MicrosoftWord中设置和使用VBA宏的详细步骤:1.启用开发者选项卡在MicrosoftWord中,默认情......
  • SVN集成ExcelMerge
    在SVN中对比表格差异时,如果只是一个sheet的CSV表格,SVN自带的diff效果也很好,如果是多个Sheet的xlsx表格,,SVN自带的diff效果就很差ExcelMerge是一个在Windows平台下比对Excel的工具,当Excel存在多个Sheet时也能很好的支持差异的比对,配合上svn可以很好的查看策划的数值表变化。具体细......