【Python-办公自动化】1秒比较出2张表格之间的不同并标黄加粗
欢迎来到"花花 Show Python",一名热爱编程和分享知识的技术博主。在这里,我将与您一同探索Python的奥秘,分享编程技巧、项目实践和学习心得。无论您是编程新手还是资深开发者,都能在这里找到有价值的信息和灵感。
自我介绍:
我热衷于将复杂的技术概念以简单易懂的方式呈现给大家,让每个人都能享受到编程的乐趣。我相信,通过不断的学习和实践,我们都能够成为更好的开发者。
关注提示:
如果您喜欢我的内容,别忘了点击关注哦!这样您就可以第一时间获取我的更新和分享。您的支持是我不断前进的动力。
原表1长这样:
原表2长这样:
代码运行比较后的表1长这样:
代码运行比较后的表2长这样:
# 导入openpyxl库中的PatternFill类,用于设置单元格的填充样式
from openpyxl.styles import PatternFill
# 导入openpyxl库中的colors模块,但在这个例子中,我们实际上可以直接使用colors.Color类或者通过字符串指定颜色
from openpyxl.styles import colors
# 导入openpyxl库中的Font类,用于设置单元格的字体样式
from openpyxl.styles import Font
# 导入openpyxl库,并给它一个别名pxl,以便在代码中更简洁地引用
import openpyxl as pxl # 加载名为'data1.xlsx'的Excel文件,并将其存储在workbook_1变量中
workbook_1 = pxl.load_workbook(r'表1.xlsx') # 加载名为'data2.xlsx'的Excel文件,并将其存储在workbook_2变量中
workbook_2 = pxl.load_workbook(r'表2.xlsx') # 选择workbook_1中的活动工作表(通常是第一个工作表),并将其存储在workbook_1_sheet_1变量中
workbook_1_sheet_1 = workbook_1.active # 选择workbook_2中的活动工作表(通常是第一个工作表),并将其存储在workbook_2_sheet_1变量中
workbook_2_sheet_1 = workbook_2.active # 计算两个工作表中较大的行数和列数,以便遍历较大的区域
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
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 # 遍历两个工作表的每个单元格(基于较大的行数和列数)
for i in range(1, (max_row + 1)): # 从第1行遍历到最大行 for j in range(1, (max_column + 1)): # 从第1列遍历到最大列 cell_1 = workbook_1_sheet_1.cell(i, j) # 获取workbook_1中当前位置的单元格 cell_2 = workbook_2_sheet_1.cell(i, j) # 获取workbook_2中当前位置的单元格 # 如果两个单元格的值不相等 if cell_1.value != cell_2.value: # 将workbook_1中当前单元格的填充样式设置为黄色 cell_1.fill = PatternFill("solid", fgColor='FFFF00') # 将workbook_1中当前单元格的字体设置为黑色并加粗 cell_1.font = Font(color=colors.BLACK, bold=True) # 将workbook_2中当前单元格的填充样式也设置为黄色 cell_2.fill = PatternFill("solid", fgColor='FFFF00') # 将workbook_2中当前单元格的字体也设置为黑色并加粗 cell_2.font = Font(color=colors.BLACK, bold=True) # 将修改后的workbook_1保存为名为'data3.xlsx'的文件
workbook_1.save('修改后表1.xlsx') # 将修改后的workbook_2保存为名为'data4.xlsx'的文件
workbook_2.save('修改后表2.xlsx')
相关文章:

【Python-办公自动化】1秒比较出2张表格之间的不同并标黄加粗
欢迎来到"花花 Show Python",一名热爱编程和分享知识的技术博主。在这里,我将与您一同探索Python的奥秘,分享编程技巧、项目实践和学习心得。无论您是编程新手还是资深开发者,都能在这里找到有价值的信息和灵感。 自我介…...

Linux下查看各进程的swap
cat /etc/re*se Red Hat Enterprise Linux Server release 6.8 (Santiago) 简单的可以通过top命令查看 top 后 按 f 进入选择列界面 按 p 就会输出swap信息(变为P) 回车返回看到SWAP信息了 再按 F 再按p 按swap排序 再回车后就是各进程按swap排序…...
最后一个单词的长度 简单字符串问题
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 示例 1: 输入:s "Hello World" 输出:5 解…...

Autodesk Mudbox 2024:重塑创意边界的3D数字绘画与雕刻利器
在数字艺术与设计领域,Autodesk Mudbox 2024以其卓越的性能和直观的操作界面,再次刷新了3D数字绘画与雕刻软件的标准。作为Autodesk家族的一员,Mudbox不仅继承了其家族强大的技术基因,更在细节上精雕细琢,为艺术家和设…...
【python下用sqlite3, 多线程下报错,原因和解决 】
在python下用sqlite3, 多线程 在UPDATE 或者INSERT的时候, 会报错 sqlite3.OperationalError: cannot commit - no transaction is active 1. 原因 多线程写冲突 非原子写操作:如果多个线程同时执行非原子写操作,可能会导致数据覆盖或不一致。 2. 解…...

学习记录——day30 网络编程 端口号port 套接字socket TCP实现网络通信
目录 一、端口号 port 二、套接字 socket 1、原理 2、socket函数介绍 三、TCP实现网络通信 1、原理 2、TCP通信原理图 3、TCP相关函数 1)bind 绑定 2)listen 监听 3)accept 接收连接请求 4)recv 接收 5)sen…...
【DataKit系列】数据迁移-实例搭建步骤(二)
说明:此文档仅包含使用DataKit进行数据迁移时,搭建迁移任务相关教程,不包含一些必须的前置配置步骤,和环境要求等,请优先学习“【DataKit系列】数据迁移-使用说明(一)”文档。 数据迁移实例搭建…...
发送jsonp请求(前后端如何实现)
发送jsonp请求(前后端如何实现) 前端 $.ajax({url: /api/jsonp,type: get,data: { id: 123 }, // 参数dataType: jsonp,jsonp: cb, // 回调函数的参数名jsonpCallback: successfn,// 回调函数contentType: "application/json; charsetutf-8",success: function(resp…...

Leetcode—1239. 串联字符串的最大长度【中等】(unordered_set)
2024每日刷题(155) Leetcode—1239. 串联字符串的最大长度 实现代码 class Solution { public:bool charSet(string & s) {unordered_set<char> charSet(s.begin(), s.end());// true表示有重复// false表示唯一return s.size() ! charSet.s…...

Spring Boot 3.x Rest API统一异常处理最佳实践
上一篇:Spring Boot 3.x Rest API最佳实践之统一响应结构 下一篇:Spring Boot 3.x Web单元测试最佳实践 参考著作:Error Handling for REST with Spring 在Spring MVC应用中,要对web表示层所抛出的异常进行捕获处理有多种方式&…...

线程的进阶学习
线程结束方式: 1.pthread_exit //pthread_join 2.从线程执行函数中return //此时效果等价于pthread_exit 3.pthread_cancel //线程可以被取消 4.任何一个线程调用了exit 或者 主线程 (main函数) return都会造成 进程结束 线程资源回收 ---pthread_join int pthread_ca…...
13.1 Python 正则表达式基础
欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: 工💗重💗hao💗:野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、应用领域等内容。 ⭐…...
贪心算法介绍(Greedy Algorithm)
贪心算法介绍(Greedy Algorithm) 1. 贪心算法概念简介 贪心算法Greedy Algorithm是一种在每一步选择中都采取当前状态下最优(或最有利)决策的算法策略,以期望通过这样的局部最优决策达到全局最优解。它适用于那些…...

谷粒商城实战笔记-175~177-商城业务-检索服务-检索查询接口开发
文章目录 一,175-商城业务-检索服务-检索查询参数模型分析抽取二,176-商城业务-检索服务-检索返回结果模型分析抽取三,177-商城业务-检索服务-检索DSL测试-查询部分四,178-商城业务-检索服务-检索DSL测试-聚合部分问题记录解决方案…...

爬虫 Web Js 逆向:RPC 远程调用获取加密参数(1)WebSocket 协议介绍
RPC (Remote Procedure Call) 是远程调用的意思。 在 Js 逆向时,本地可以和浏览器以服务端和客户端的形式通过 WebSocket 协议进行 RPC 通信,这样可以直接调用浏览器中的一些函数方法,不必去在意函数具体的执行逻辑,可以省去大量…...

【安卓】WebView的用法与HTTP访问网络
文章目录 WebView的用法使用http访问网络使用HttpURLConnection使用OkHttp 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到网站。 WebView的用法 新建一个WebViewTest项目,然后修…...
Mysql中文存入乱码???
问题描述 提示:用的mysql5.x版本: 例如:在新增数据的时候,数据库本应该保存中文的字段出现了乱码???: 原因分析: 提示:首先想到的是mysql的字符集设置&…...

安美数字酒店宽带运营系统 weather.php 任意文件读取漏洞复现
0x01 产品简介 HiBOS酒店宽带运营系统是由安美世纪(北京)科技有限公司开发的一套专为酒店设计的宽带管理系统。该系统旨在提升酒店宽带服务的运营效率和安全性,为酒店客人提供稳定、高速、便捷的上网体验。 0x02 漏洞概述 安美数字酒店宽带运营系统 weather.php …...
BGP的反射器(四)
解决IBGP全互联问题带来的问题: 路由器需维护大量的TCP和BGP连接,尤其在路由器数量较多时AS内BGP网络的可扩展性较差 角色 RR:路由反射器Client:RR的客户端Non-Client:非客户机 关系 Client只与RR之间建立IBGP会话…...

proxy负载均衡
endpoint : 终点、终端 看service服务器的ip kubectl get ep backend -> real server :真正提供web服务的服务器 负载均衡器 load balancer --》LB USER -->LB --->BACKEND(real server) nginx SERVICE --->很多的endpoint--》po…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...

基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...

华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...
【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权
摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题:安全。文章将详细阐述认证(Authentication) 与授权(Authorization的核心概念,对比传统 Session-Cookie 与现代 JWT(JS…...