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中几个比较常见的名词解释
Jul 04 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
Jan 02 Python
Python设计模式之MVC模式简单示例
Jan 10 Python
python高阶爬虫实战分析
Jul 29 Python
解决python 无法加载downsample模型的问题
Oct 25 Python
Python爬虫文件下载图文教程
Dec 23 Python
python实现3D地图可视化
Mar 25 Python
使用keras根据层名称来初始化网络
May 21 Python
简述 Python 的类和对象
Aug 21 Python
Python尾递归优化实现代码及原理详解
Oct 09 Python
Python 快速验证代理IP是否有效的方法实现
Jul 15 Python
python游戏开发之pygame实现接球小游戏
Apr 22 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简洁函数小结
2011/08/12 PHP
360通用php防护代码(使用操作详解)
2013/06/18 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
2014/06/26 PHP
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
2016/05/09 PHP
PHP实现的激活用户注册验证邮箱功能示例
2017/06/06 PHP
Dom与浏览器兼容性说明
2010/10/25 Javascript
js 字符串转化成数字的代码
2011/06/29 Javascript
js日期时间补零的小例子
2013/03/05 Javascript
JS删除数组元素的函数介绍
2013/03/27 Javascript
jquery使用append(content)方法注意事项分享
2014/01/06 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
jquery操作复选框checkbox的方法汇总
2015/02/05 Javascript
JavaScript实现点击按钮字体放大、缩小
2016/02/29 Javascript
微信小程序 实例应用(记账)详解
2016/09/28 Javascript
原生js实现倒计时功能(多种格式调用)
2017/01/12 Javascript
使用原生js封装的ajax实例(兼容jsonp)
2017/10/12 Javascript
js实现一个页面多个倒计时的3种方法
2019/02/25 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
JS出现404错误原理及解决方案
2020/07/01 Javascript
vue打开其他项目页面并传入数据详解
2020/11/25 Vue.js
JS中箭头函数与this的写法和理解
2021/01/14 Javascript
使用Python脚本来获取Cisco设备信息的示例
2015/05/04 Python
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
python通过elixir包操作mysql数据库实例代码
2018/01/31 Python
wx.CheckBox创建复选框控件并响应鼠标点击事件
2018/04/25 Python
Django rest framework工具包简单用法示例
2018/07/20 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
python 字段拆分详解
2019/12/17 Python
HTML+CSS3+JS 实现的下拉菜单
2020/11/25 HTML / CSS
世界第一冲浪品牌:O’Neill
2016/08/30 全球购物
精灵市场:Pixie Market
2019/06/18 全球购物
大学生党课思想汇报
2013/12/29 职场文书
乡下人家教学反思
2014/02/01 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
2016年大学校运会广播稿件
2015/12/21 职场文书
Android 中的类文件和类加载器详情
2022/06/05 Java/Android