用python对excel查重


Posted in Python onDecember 07, 2020

最近媳妇工作上遇到一个重复性劳动,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 相关文章推荐
python交互式图形编程实例(一)
Nov 17 Python
Python使用pymongo模块操作MongoDB的方法示例
Jul 20 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
Aug 30 Python
Django基础三之视图函数的使用方法
Jul 18 Python
Django 对象关系映射(ORM)源码详解
Aug 06 Python
pytorch中的自定义反向传播,求导实例
Jan 06 Python
pytorch实现线性拟合方式
Jan 15 Python
Python Pandas 对列/行进行选择,增加,删除操作
May 17 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
Jun 06 Python
降低python版本的操作方法
Sep 11 Python
python使用bs4爬取boss直聘静态页面
Oct 10 Python
Python使用mitmproxy工具监控手机 下载手机小视频
Apr 18 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
Dec 07 #Python
python 通过 pybind11 使用Eigen加速代码的步骤
Dec 07 #Python
Python中BeautifulSoup通过查找Id获取元素信息
Dec 07 #Python
BeautifulSoup中find和find_all的使用详解
Dec 07 #Python
python爬虫beautifulsoup解析html方法
Dec 07 #Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
Dec 07 #Python
用ldap作为django后端用户登录验证的实现
Dec 07 #Python
You might like
BBS(php & mysql)完整版(四)
2006/10/09 PHP
福利彩票幸运号码自动生成器
2006/10/09 PHP
php创建桌面快捷方式实现方法
2015/12/31 PHP
bcastr2.0 通用的图片浏览器
2006/11/22 Javascript
javascript parseInt 大改造
2009/09/27 Javascript
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
2012/06/14 Javascript
jquery将一个表单序列化为一个对象的方法
2013/12/02 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
js实现鼠标悬浮给图片加边框的方法
2015/01/30 Javascript
jQuery实现预加载图片的方法
2015/03/17 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
2016/07/01 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
微信小程序 同步请求授权的详解
2017/08/04 Javascript
JS实现可视化文件上传
2018/09/08 Javascript
微信小程序实现手势滑动卡片效果
2019/08/26 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
2019/09/20 Javascript
Python中内建函数的简单用法说明
2016/05/05 Python
基于Python函数的作用域规则和闭包(详解)
2017/11/29 Python
Django项目中实现使用qq第三方登录功能
2019/08/13 Python
python -v 报错问题的解决方法
2020/09/15 Python
基于Python实现体育彩票选号器功能代码实例
2020/09/16 Python
Shoes For Crews法国官网:美国领先的防滑鞋设计和制造商
2018/01/01 全球购物
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
纽约市的奢华内衣目的地:Anya Lust
2019/08/02 全球购物
DBA数据库管理员JAVA程序员架构师必看
2016/02/07 面试题
诚信考试倡议书
2014/04/15 职场文书
模具专业求职信
2014/06/26 职场文书
授权委托书格式
2014/07/31 职场文书
公司开会通知
2015/04/20 职场文书
党员承诺书范文2015
2015/04/27 职场文书
经营场所使用证明
2015/06/19 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书
goland设置颜色和字体的操作
2021/05/05 Golang
正确使用MySQL INSERT INTO语句
2021/05/26 MySQL
cypress测试本地web应用
2022/06/01 Javascript