首页 > 其他分享 >openpyxl模块--------------------------------重复数据

openpyxl模块--------------------------------重复数据

时间:2024-01-13 19:44:07浏览次数:24  
标签:-------------------------------- __ openpyxl value sh 模块 tmp wb

测试数据

 

上代码:

from  openpyxl import load_workbook
from openpyxl.styles import PatternFill

def dum():
wb = load_workbook("C:/Users/admin/Desktop/打卡时间.xlsx")
sh = wb.active
##存储哪一行的重复数据
index = []
tmp = [] #没有重复的数据
for i,c in enumerate(sh['B']):
flag = c.value not in tmp
print(flag,f'===={c}========={tmp}')
if flag:


#if c not in tmp:
tmp.append(c.value)
else:
index.append(i)
fill = PatternFill('solid',fgColor='AEEEEE')
for i,r in enumerate(sh.rows):
if i in index:
for c in r:
c.fill = fill
print(f'第{i+1}条数据是重复的')
wb.save('C:/Users/admin/Desktop/重复shuju.xlsx')


if __name__ == "__main__":
dum()
实现效果:

 ###################################删除重复值

from  openpyxl import load_workbook
from openpyxl.styles import PatternFill

def dum():
wb = load_workbook("C:/Users/admin/Desktop/打卡时间.xlsx")
sh = wb.active
## 创建一个集合来存放已经遇到过的值
seen_values = set()

# 从最后一行开始向上遍历每一行
for row in range(sh.max_row, 0, -1):
for column in sh[row]:
value = str(column.value) # 将单元格内容转换为字符串类型

if value not in seen_values and value != '':
seen_values.add(value)
else:
# 移动当前行并删除该行
sh.delete_rows(row)
wb.save('C:/Users/admin/Desktop/delete.xlsx')


if __name__ == "__main__":
dum()
测试数据:

 

获得的结果:

 

标签:--------------------------------,__,openpyxl,value,sh,模块,tmp,wb
From: https://www.cnblogs.com/cherishthepresent/p/17962824

相关文章

  • 函数返回值
    #获取数据的长度(不使用len)defgetnum(str):#str保存的是列表数据a=0#定义一个变量,保存for循环的次数foriinstr:#列表中有几个数就会循环几次a=a+1#每次循环的次数加1print(f'{str}的数据个数为{a}')#打印出列表数据以及长度str1=[1,2,3,......
  • NUS CS1101S:SICP JavaScript 描述:四、元语言抽象
    原文:4MetalinguisticAbstraction译者:飞龙协议:CCBY-NC-SA4.0...魔法就在于文字——Abracadabra,开门,以及其他——但一个故事中的魔法词在另一个故事中并不神奇。真正的魔法是理解哪些词起作用,何时起作用,以及为什么起作用;诀窍就是学会这个诀窍。...而这些词是由我们字母表......
  • 数据可视化是如何帮助我们高效了解数据的?
    在信息爆炸的时代,数据扮演着越来越重要的角色,而数据可视化则成为解读和理解海量数据的得力工具。那么,数据可视化是如何帮助我们高效了解数据的呢?下面我就以可视化从业者的角度来简单聊聊这个话题。无需深奥的专业知识,数据可视化以直观、生动的方式呈现数据,让我们能够一眼洞悉信......
  • NUS CS1101S:SICP JavaScript 描述:五、使用寄存器机进行计算
    原文:5ComputingwithRegisterMachines译者:飞龙协议:CCBY-NC-SA4.0我的目标是表明天堂机器不是一种神圣的生命体,而是一种钟表(相信钟表有灵魂属性的人将制造者的荣耀归功于作品),因为几乎所有多种运动都是由一种最简单和物质力量引起的,就像钟表的所有运动都是由单一重力引起......
  • AtCoder Beginner Contest 335 G Discrete Logarithm Problems
    洛谷传送门AtCoder传送门考虑若我们对于每个\(a_i\)求出来了使得\(g^{b_i}\equiva_i\pmodP\)的\(b_i\)(其中\(g\)为\(P\)的原根),那么\(a_i^k\equiva_j\pmodP\)等价于\(kb_i\equivb_j\pmod{P-1}\),有解的充要条件是\(\gcd(b_i,P-1)\midb_j\)。显然......
  • NUS CS1101S:SICP JavaScript 描述:前言、序言和致谢
    前言原文:Foreword译者:飞龙协议:CCBY-NC-SA4.0我有幸在我还是学生的时候见到了了不起的AlanPerlis,并和他交谈了几次。他和我共同深爱和尊重两种非常不同的编程语言:Lisp和APL。跟随他的脚步是一项艰巨的任务,尽管他开辟了一条优秀的道路。尽管如此,我想重新审视他在这本书......
  • 设备数字化
    五厂设备数字化一、数据抓取相关通用协议了解:QS、OPC、HTTP/HTTPS/TCP/UDP、websocket1.相机数据获取①BT相机BT上料相机不良数据抓取.py点击查看代码importosfromdatetimeimportdatetime,timedeltaimportpyodbcimportasyncioimportthreadingimportlogging......
  • Django客户端应用1向服务端应用2发送POST请求并接收解析数据
    一、应用1发送post请求deflogin(url,data):response=requests.post(url,json=data)ifresponse.status_code==200:result=response.json()print(result)returnresultelse:returnNonetry:url="htt......
  • 跟着阿灵学前端(1)——HTML 基础
    1.html排版标签标签名标签含义单/双标签h1~h6标题双p段落双div块,没有任何含义,用于整体布局(生活中的包装袋)双注意:1、一个页面只能有一个h1,可以有多个h2-h6,h标签不允许互相嵌套。2、p标签很特殊,里面不能有p、div、h1~h6标签,会自定甩出来自动前后补全......
  • 跟着阿灵学前端(2)——CSS 基础
    1.CSS简介CSS的全称为:层叠样式表(CascadingStyleSheets)。CSS也是一种标记语言。用于给HTML结构设置样式,例如:文字大小,颜色,元素宽高等等。简单理解:CSS可以美化HTML,让HTML更漂亮。核心思想:HTML搭建结构,CSS添加样式,实现了:结构与样式的分离。2.CSS的编写位置2.1行......