最近媳妇工作上遇到一个重复性劳动,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查重相关推荐

  1. python中numpy数组的合并_基于Python中numpy数组的合并实例讲解

    基于Python中numpy数组的合并实例讲解 Python中numpy数组的合并有很多方法,如 - np.append() - np.concatenate() - np.stack() - np. ...

  2. 一个完整的python文件即是一个模块_用python玩转数据|基本语法

    比较运算符 >>>3<4<7 True >>>3<4<1 False >>> 打开文件 >>> f=op ...

  3. python文件之间的相互调用_用Python创建功能模块——截取字符串模块

    用Python创建模块 本篇文章小编给大家分享在Python如何创建属于自己的模块,实现更多的功能! 一.模块 模块是什么?简单来说,当程序的功能很多.代码量很大时,我们可以编写一个实现一定功能的py ...

  4. 一个完整的python文件即是一个模块_用Python玩转数据:python的函数、模块和包

    标签: Python函数 函数可以看成类似于数学中的函数,完成一个特定功能的一段代码. -绝对值函数 abs() -类型函数 type() -四舍五入函数 round() Python中有很多内建函数 ...

  5. python文件之间的相互调用_「Python 系列」 Python 生成器函数详解

    Python的生成器函数提供了一种强大的机制来管理数据和计算资源,但是对于Python的新手来说,它们不一定直观.在本文中,我将分解生成器的机制,同时还介绍我希望是一个有启发性的示例:用于管理和流传输 ...

  6. python文件中单词的删除_使用python删除文件中的多余单词

    嗨,我正在学习Python,出于好奇,我编写了一个程序来删除文件中多余的单词. 我正在比较文件text1.txt中的测试.和'text2.txt',基于text1中的测试,我删除了test2中多余的单 ...

  7. python文件之间的相互调用_一行 Python 代码能实现什么丧心病狂的功能?

    python一直被病垢运行速度太慢,但是实际上python的执行效率并不慢,慢的是python用的解释器Cpython运行效率太差. "一行代码让python的运行速度提高100倍" ...

  8. 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 ...

  9. python文件只读打开模式是_在Python中将文件更改为只读模式

    I am writing a data processing code, in which I create a new file, write processed data in to this f ...

最新文章

  1. 设计模式 之美 --- 初篇
  2. ASP删除黑客建立的只读文件夹和文件
  3. 【Linux内核】内存映射原理
  4. 那些我曾经犯过的低级编程错误
  5. git的clone命令出现fatal:unable to access ‘https://github.comXXXXXXX“:OpenSSL SSL_read:connection was errn
  6. 硬盘与电线挨着会高温吗_对着电线撒尿,会触电吗?
  7. VLfeat库---研习
  8. matlab 声纹识别,识别模型论文,关于基于MATLAB的声纹识别系统软件的设计相关参考文献资料-免费论文范文...
  9. Python常用模块15-python的configparser模块
  10. 0602 信用卡防盗刷学习总结
  11. 华为云ManageOne北向对接之基本名词概念(一)
  12. java设计模式--装饰器设计模式(javaIO设计使用)
  13. 关于diskgenius删除所有分区后,电脑不能识别U盘的问题。
  14. python 实现126邮箱登录
  15. MFRC522使用、设计心得及详细教程资料
  16. 托管调试助手“LoaderLock”在XXX中检测到故障。其他信息:正尝试在OS加载程序锁内执行托管代码。不要尝试在DllMain或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。
  17. Python采集彼岸4K高清壁纸
  18. Linux哪个命令显示文件内容,显示文件内容的Linux命令有哪些?Linux培训
  19. android 来电过滤,Android实现来电挂断
  20. 数据泄漏防护 (DLP) 工具保护敏感数据

热门文章

  1. poj 1637 Sightseeing tour 混合欧拉图判定
  2. iOS9 App Thinning(应用瘦身)功能介绍 1
  3. mysql导入数据库之后触发器没有权限_MYSQL设置触发器权限问题的解决方法
  4. html+css day1 如何用Mac创建html文件
  5. 在线ASCII转换HEX
  6. 2022安全员-A证考试题模拟考试题库模拟考试平台操作
  7. 一篇文章让你掌握HTML+CSS
  8. 导入sql报错:1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘
  9. linux 命令 是mmc 大小,u-boot中mmc命令使用
  10. CAM350 图片镜像