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使用urllib模块的urlopen超时问题解决方法
Nov 08 Python
Python基于socket实现简单的即时通讯功能示例
Jan 16 Python
python解压TAR文件至指定文件夹的实例
Jun 10 Python
python-django中的APPEND_SLASH实现方法
Jun 21 Python
Python识别快递条形码及Tesseract-OCR使用详解
Jul 15 Python
Python中remove漏删和索引越界问题的解决
Mar 18 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
Apr 07 Python
高考考python编程是真的吗
Jul 20 Python
Scrapy爬虫文件批量运行的实现
Sep 30 Python
python在地图上画比例的实例详解
Nov 13 Python
Python制作运行进度条的实现效果(代码运行不无聊)
Feb 24 Python
上帝为你开了一扇窗之Tkinter常用函数详解
Jun 02 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 Xdebug 调试扩展的安装与使用.
2010/03/13 PHP
从php核心代码分析require和include的区别
2011/01/02 PHP
php实现源代码加密的方法
2015/07/11 PHP
CodeIgniter记录错误日志的方法全面总结
2016/05/17 PHP
基于jquery的网页SELECT下拉框美化代码
2010/10/28 Javascript
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
js仿iphone秒表功能 计算平均数
2017/01/11 Javascript
vue.js 初体验之Chrome 插件开发实录
2017/05/13 Javascript
vue过渡和animate.css结合使用详解
2017/06/14 Javascript
vue.js语法及常用指令
2017/10/29 Javascript
JS实现碰撞检测的方法分析
2018/01/19 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
深入浅析JS中的严格模式
2018/06/04 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
微信小程序 简易计算器实现代码实例
2019/09/02 Javascript
基于javascript实现贪吃蛇经典小游戏
2020/04/10 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
[50:02]完美世界DOTA2联赛循环赛 Magma vs IO BO2第一场 11.01
2020/11/02 DOTA
Python基于twisted实现简单的web服务器
2014/09/29 Python
用matplotlib画等高线图详解
2017/12/14 Python
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
python机器学习之KNN分类算法
2018/08/29 Python
python实现录音小程序
2020/10/26 Python
python爬虫神器Pyppeteer入门及使用
2019/07/13 Python
Django实现跨域的2种方法
2019/07/31 Python
Python pip配置国内源的方法
2020/02/14 Python
Pycharm编辑器功能之代码折叠效果的实现代码
2020/10/15 Python
Numpy数组的广播机制的实现
2020/11/03 Python
分享CSS3制作卡片式图片的方法
2016/07/08 HTML / CSS
详解CSS3中强大的filter(滤镜)属性
2017/06/29 HTML / CSS
canvas实现有递增动画的环形进度条的实现方法
2019/07/10 HTML / CSS
管理部副部长岗位职责范文
2014/03/09 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
高温慰问简报
2015/07/21 职场文书
2015重阳节敬老活动总结
2015/07/29 职场文书