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二分法搜索算法实例分析
May 11 Python
Python实现多线程抓取妹子图
Aug 08 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
Dec 28 Python
Python将string转换到float的实例方法
Jul 29 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
Aug 05 Python
使用turtle绘制五角星、分形树
Oct 06 Python
python pyinstaller打包exe报错的解决方法
Nov 02 Python
Python语法之精妙的十个知识点(装B语法)
Jan 18 Python
keras中的loss、optimizer、metrics用法
Jun 15 Python
python接入支付宝的实例操作
Jul 20 Python
Python 在函数上添加包装器
Jul 28 Python
python中取整数的几种方法
Nov 07 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
修改apache配置文件去除thinkphp url中的index.php
2014/01/17 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
CodeIgniter配置之autoload.php自动加载用法分析
2016/01/20 PHP
postfixadmin忘记密码后的修改密码方法详解
2016/07/20 PHP
JavaScript 验证码的实例代码(附效果图)
2013/03/22 Javascript
javascript实现数字验证码的简单实例
2014/02/10 Javascript
jquery xMarquee实现文字水平无缝滚动效果
2014/04/29 Javascript
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
在js中实现邮箱格式的验证方法(推荐)
2016/10/24 Javascript
js学习之----深入理解闭包
2016/11/21 Javascript
Jil,高效的json序列化和反序列化库
2017/02/15 Javascript
Bootstrap表单控件学习使用
2017/03/07 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
2017/09/12 Javascript
jQuery图片查看插件Magnify开发详解
2017/12/25 jQuery
vue中动态绑定表单元素的属性方法
2018/02/23 Javascript
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
2018/08/24 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
NodeJS 实现多语言的示例代码
2018/09/11 NodeJs
详解如何更好的使用module vuex
2019/03/27 Javascript
微信小程序 textarea 层级过高问题简单解决方案
2019/10/14 Javascript
利用python3随机生成中文字符的实现方法
2017/11/24 Python
Python方法的延迟加载的示例代码
2017/12/18 Python
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
Php多进程实现代码
2018/05/07 Python
Anaconda2下实现Python2.7和Python3.5的共存方法
2018/06/11 Python
Python实现绘制双柱状图并显示数值功能示例
2018/06/23 Python
Python标准库json模块和pickle模块使用详解
2020/03/10 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
使用 HTML5 Canvas 制作水波纹效果点击图片就会触发
2014/09/15 HTML / CSS
Nike比利时官网:Nike.com (BE)
2019/02/07 全球购物
乐观大学生的自我评价
2014/01/10 职场文书
酒店销售经理岗位职责
2014/01/31 职场文书
主持词开场白
2014/03/17 职场文书
80后婚前协议书范本
2014/10/24 职场文书