python文件查重并合并_用python对excel查重
最近媳妇工作上遇到一个重复性劳动,excel表格查重,重复的标记起来,问我能不能写个程序让它自动查重标记
必须安排
第一次正儿八经写python,边上网查资料,边写
终于成功了
在此记录一下
首先安装xlwings库
pip install xlwings
写代码
import xlwings as xw
# 输入表名
title = input()
# 指定不显示地打开Excel,读取Excel文件
app = xw.App(visible=False, add_book=False)
wb = app.books.open(title) # 打开Excel文件
sheet = wb.sheets[0] # 选择第0个表单
# 获取表行数
sheetInfo = sheet.used_range
maxRow = sheetInfo.last_cell.row
# maxColumn = sheetInfo.last_cell.column
# print('表行数:',maxRow)
# 单据编号
num = []
# 报销类型
baoxiaoType = []
# 部门
department = []
# 收款方
name = []
# 报销金额
money = []
# 将需要的数据读取保存
for row in range(2, maxRow):
value = sheet.range("A" + str(row)).value
num.append(value)
value = sheet.range("C" + str(row)).value
baoxiaoType.append(value)
value = sheet.range("H" + str(row)).value
department.append(value)
value = sheet.range("N" + str(row)).value
name.append(value)
value = sheet.range("K" + str(row)).value
money.append(value)
# print(num)
# print(baoxiaoType)
# print(department)
# print(name)
# print(money)
# 保存标记为重复的行号
flag = []
# 判断是否已经标记为重复
# 重复返回Ture
# 否则返回False
def isRepeat(index):
for num in flag:
if num == index:
return True
else:
continue
return False
# 遍历每一行,进行查重
for row in range(0, len(money)):
# 判断是否已经标记为重复
# 如果重复不做判断,结束本次循环
# 否则断续向下执行
if True == isRepeat(row + 2):
continue
elif False == isRepeat(row + 2):
# 获取当前行数据
current = money[row]
# 遍历后面行是否和当前行数据重复
for subRow in range(1, len(money)):
# 获取下一行数据
subCur = money[subRow]
# 判断当前行内容和对比行内容是否相等
if current == subCur:
# 再判断编号行内容是否相等
if num[row] == num[subRow]:
continue
else:
# 对比其它内容是否相等
if (
(department[row] == department[subRow])
and (baoxiaoType[row] == baoxiaoType[subRow])
and (name[row] == name[subRow])
):
# 将重复行行号保存,表格的表头,且表头行号从1 开始,所以行号等于当前索引+2
flag.append(subRow + 2)
# 设置两个重复行的首列单元格颜色
cell = sheet.range("A" + str(row + 2))
cell.color = 0, 255, 255
subcell = sheet.range("A" + str(subRow + 2))
subcell.color = 0, 255, 255
# 打印提示
print("重复起始行:", row + 2, "重复行", subRow + 2)
# 保存当前工作簿
wb.save()
# 关闭当前工作簿
wb.close()
# 退出excel程序
app.quit()
# 阻塞不退出
input("Press Any Key")
鉴于媳妇办公电脑不方便安装python环境,所以打包成exe可执行程序,使用pyinstaller工具
安装
pip install pyinstaller
打包
# -F 打包为单文件
# -i 指定图标
pyinstaller -F *.py -i *.ico
以上就是用python对excel查重的详细内容,更多关于python excel查重的资料请关注我们其它相关文章!
本文标题: 用python对excel查重
本文地址: http://www.cppcns.com/jiaoben/python/368237.html
python文件查重并合并_用python对excel查重相关推荐
- python中numpy数组的合并_基于Python中numpy数组的合并实例讲解
基于Python中numpy数组的合并实例讲解 Python中numpy数组的合并有很多方法,如 - np.append() - np.concatenate() - np.stack() - np. ...
- 一个完整的python文件即是一个模块_用python玩转数据|基本语法
比较运算符 >>>3<4<7 True >>>3<4<1 False >>> 打开文件 >>> f=op ...
- python文件之间的相互调用_用Python创建功能模块——截取字符串模块
用Python创建模块 本篇文章小编给大家分享在Python如何创建属于自己的模块,实现更多的功能! 一.模块 模块是什么?简单来说,当程序的功能很多.代码量很大时,我们可以编写一个实现一定功能的py ...
- 一个完整的python文件即是一个模块_用Python玩转数据:python的函数、模块和包
标签: Python函数 函数可以看成类似于数学中的函数,完成一个特定功能的一段代码. -绝对值函数 abs() -类型函数 type() -四舍五入函数 round() Python中有很多内建函数 ...
- python文件之间的相互调用_「Python 系列」 Python 生成器函数详解
Python的生成器函数提供了一种强大的机制来管理数据和计算资源,但是对于Python的新手来说,它们不一定直观.在本文中,我将分解生成器的机制,同时还介绍我希望是一个有启发性的示例:用于管理和流传输 ...
- python文件中单词的删除_使用python删除文件中的多余单词
嗨,我正在学习Python,出于好奇,我编写了一个程序来删除文件中多余的单词. 我正在比较文件text1.txt中的测试.和'text2.txt',基于text1中的测试,我删除了test2中多余的单 ...
- python文件之间的相互调用_一行 Python 代码能实现什么丧心病狂的功能?
python一直被病垢运行速度太慢,但是实际上python的执行效率并不慢,慢的是python用的解释器Cpython运行效率太差. "一行代码让python的运行速度提高100倍" ...
- python两个数据框合并_关于python 2.7:python2 pandas:如何将另一个数据框的一部分合并到一个数据框...
我有一个dataframe(df1)如下: datetime m d 1d 2d 3d 2014-01-01 1 1 2 2 3 2014-01-0 ...
- python文件只读打开模式是_在Python中将文件更改为只读模式
I am writing a data processing code, in which I create a new file, write processed data in to this f ...
最新文章
- 设计模式 之美 --- 初篇
- ASP删除黑客建立的只读文件夹和文件
- 【Linux内核】内存映射原理
- 那些我曾经犯过的低级编程错误
- git的clone命令出现fatal:unable to access ‘https://github.comXXXXXXX“:OpenSSL SSL_read:connection was errn
- 硬盘与电线挨着会高温吗_对着电线撒尿,会触电吗?
- VLfeat库---研习
- matlab 声纹识别,识别模型论文,关于基于MATLAB的声纹识别系统软件的设计相关参考文献资料-免费论文范文...
- Python常用模块15-python的configparser模块
- 0602 信用卡防盗刷学习总结
- 华为云ManageOne北向对接之基本名词概念(一)
- java设计模式--装饰器设计模式(javaIO设计使用)
- 关于diskgenius删除所有分区后,电脑不能识别U盘的问题。
- python 实现126邮箱登录
- MFRC522使用、设计心得及详细教程资料
- 托管调试助手“LoaderLock”在XXX中检测到故障。其他信息:正尝试在OS加载程序锁内执行托管代码。不要尝试在DllMain或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。
- Python采集彼岸4K高清壁纸
- Linux哪个命令显示文件内容,显示文件内容的Linux命令有哪些?Linux培训
- android 来电过滤,Android实现来电挂断
- 数据泄漏防护 (DLP) 工具保护敏感数据
热门文章
- poj 1637 Sightseeing tour 混合欧拉图判定
- iOS9 App Thinning(应用瘦身)功能介绍 1
- mysql导入数据库之后触发器没有权限_MYSQL设置触发器权限问题的解决方法
- html+css day1 如何用Mac创建html文件
- 在线ASCII转换HEX
- 2022安全员-A证考试题模拟考试题库模拟考试平台操作
- 一篇文章让你掌握HTML+CSS
- 导入sql报错:1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘
- linux 命令 是mmc 大小,u-boot中mmc命令使用
- CAM350 图片镜像