python 如何快速找出两个电子表中数据的差异


Posted in Python onMay 26, 2017

最近刚接触python,找点小任务来练练手,希望自己在实践中不断的锻炼自己解决问题的能力。

公司里会有这样的场景:有一张电子表格的内容由两三个部门或者更多的部门用到,这些员工会在维护这些表格中不定期的跟新一些自己部门的数据,时间久了,大家的数据就开始打架了,非常不利于管理。怎样快速找到两个或者多个电子表格中数据的差异呢?

解决办法:

1. Excel自带的方法(有兴趣的自行百度)

2. python 写一个小脚本

#!/usr/bin/env python
# -*- coding: utf-8 -*-

#导入模块 openpyxl 
import openpyxl
from openpyxl.styles import PatternFill
from openpyxl.styles import colors
from openpyxl.styles import Font, Color

#读取excel文件
#括号中的字符串为你要比较的两个excel的路径,注意用“/”
wb_a = openpyxl.load_workbook('d:/BAKFILE/d046532/Desktop/check excel/test.xlsx')
wb_b = openpyxl.load_workbook('d:/BAKFILE/d046532/Desktop/check excel/test2.xlsx')
#定义一个方法来获取表格中某一列的内容,返回一个列表
#在这里,我的表格中:IP是具有唯一性的,所以我用它来区分数据的差异,而IP这一列在我的表格中是第“G”列
def getIP(wb):
  sheet = wb.get_active_sheet()
  ip = []
  for cellobj in sheet['G']:
    ip.append(cellobj.value)

  return ip
#获得ip列表
ip_a = getIP(wb_a)
ip_b = getIP(wb_b)
#将两个列表转换成集合
aa = set(ip_a)
bb = set(ip_b)
#找出两个列表的不同行,并转换成列表
difference = list(aa ^ bb)
#打印出列表中的元素
#到这一步,两个表格中不同的数据已经被找出来了
for i in difference:
  print (i)

#将不同行高亮显示
print ("开始第一张表" + "----" *10)
a = wb_a.get_active_sheet()['G']
for cellobj in a:
  if cellobj.value in difference:
    print (cellobj.value)
    cellobj.font = Font(color=colors.BLACK, italic=True ,bold = True)
    cellobj.fill = PatternFill("solid", fgColor="DDDDDD")
print ("开始第二张表" + "----" *10)
b = wb_b.get_active_sheet()['G']
for cellobj in b:
  if cellobj.value in difference:
    print (cellobj.value)
    cellobj.font = Font(color=colors.BLACK, italic=True ,bold = True)
    cellobj.fill = PatternFill("solid", fgColor="DDDDDD")

wb_a.save('d:/BAKFILE/d046532/Desktop/a.xlsx')
wb_b.save('d:/BAKFILE/d046532/Desktop/b.xlsx')

这样,就会保存两个excel的副本,并在这个副本中用单元格填充色和字体颜色标注出两个表格中不同的数据差异

未解决:

1. 怎样将这些有差异的数据补充到一张表里,形成一个全集表

2. 怎么优化精简代码

以上这篇python 如何快速找出两个电子表中数据的差异就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现发送和获取手机短信验证码
Jan 15 Python
浅谈python新手中常见的疑惑及解答
Jun 14 Python
Python 使用requests模块发送GET和POST请求的实现代码
Sep 21 Python
Python如何import文件夹下的文件(实现方法)
Jan 24 Python
pycharm远程调试openstack代码
Nov 21 Python
Python实现的读取电脑硬件信息功能示例
May 30 Python
django1.11.1 models 数据库同步方法
May 30 Python
python中的turtle库函数简单使用教程
Jul 23 Python
python遍历小写英文字母的方法
Jan 02 Python
Python解析命令行读取参数之argparse模块
Jul 26 Python
python让函数不返回结果的方法
Jun 22 Python
用python读取xlsx文件
Dec 17 Python
详解Python3操作Mongodb简明易懂教程
May 25 #Python
python爬虫入门教程--正则表达式完全指南(五)
May 25 #Python
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
May 25 #Python
Python win32com 操作Exce的l简单方法(必看)
May 25 #Python
python win32 简单操作方法
May 25 #Python
python爬虫入门教程--利用requests构建知乎API(三)
May 25 #Python
Python正则表达式完全指南
May 25 #Python
You might like
PHP的ASP防火墙
2006/10/09 PHP
php win下Socket方式发邮件类
2009/08/21 PHP
PHP中的integer类型使用分析
2010/07/27 PHP
解析yii数据库的增删查改
2013/06/20 PHP
使用XHGui来测试PHP性能的教程
2015/07/03 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
PHP token验证生成原理实例分析
2019/06/05 PHP
php的instanceof和判断闭包Closure操作示例
2020/01/26 PHP
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
2010/03/20 Javascript
UpdatePanel和Jquery冲突的解决方法
2013/04/01 Javascript
js定时调用方法成功后并停止调用示例
2014/04/08 Javascript
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
node.js中的fs.close方法使用说明
2014/12/17 Javascript
javascript中var的重要性分析
2015/02/11 Javascript
React组件的三种写法总结
2017/01/12 Javascript
基于JavaScript定位当前的地理位置
2017/04/11 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
Angular4绑定html内容出现警告的处理方法
2017/11/03 Javascript
详解CommonJS和ES6模块循环加载处理的区别
2018/12/26 Javascript
vue组件实现移动端九宫格转盘抽奖
2020/10/16 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
2021/01/20 Javascript
[45:40]Ti4 冒泡赛第二天NEWBEE vs NaVi 1
2014/07/15 DOTA
[37:50]VP vs TNC Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
[01:05:59]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
DataFrame中的object转换成float的方法
2018/04/10 Python
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
python sorted方法和列表使用解析
2019/11/18 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
2020/03/06 Python
Django 多对多字段的更新和插入数据实例
2020/03/31 Python
Python 合并拼接字符串的方法
2020/07/28 Python
北美领先的牛仔品牌:Buffalo David Bitton
2017/05/22 全球购物
internal修饰符起什么作用
2013/12/16 面试题
毕业生护理专业个人求职信范文
2014/01/04 职场文书
合伙经营协议书范本
2014/09/13 职场文书
2015年乡镇平安建设工作总结
2015/05/13 职场文书
婚前协议书怎么写,才具有法律效力呢 ?
2019/06/28 职场文书