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捕捉和模拟鼠标事件的方法
Jun 03 Python
python 随机数使用方法,推导以及字符串,双色球小程序实例
Sep 12 Python
python中numpy.zeros(np.zeros)的使用方法
Nov 07 Python
python 反向输出字符串的方法
Jul 16 Python
python使用opencv驱动摄像头的方法
Aug 03 Python
如何在python中实现线性回归
Aug 10 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
Oct 12 Python
linux系统下pip升级报错的解决方法
Jan 31 Python
python 30行代码实现蚂蚁森林自动偷能量
Feb 08 Python
python自动生成sql语句的脚本
Feb 24 Python
对Pytorch 中的contiguous理解说明
Mar 03 Python
tensorboard 可视化之localhost:6006不显示的解决方案
May 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 checkdate、getdate等日期时间函数操作详解
2010/03/11 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
PHP生成指定长度随机数最简洁的方法
2014/07/14 PHP
php购物车实现方法
2015/01/03 PHP
浅析PHP中Session可能会引起并发问题
2015/07/23 PHP
PHP实现递归复制整个文件夹的类实例
2015/08/03 PHP
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
$.format,jquery.format 使用说明
2011/07/13 Javascript
jQuery AJAX实现调用页面后台方法和web服务定义的方法分享
2012/03/01 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
js脚本获取webform服务器控件的方法
2014/05/16 Javascript
javascript 动态创建表格的2种方法总结
2015/03/04 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
angular中的http拦截器Interceptors的实现
2017/02/21 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
vue项目中使用vue-layer弹框插件的方法
2020/03/11 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
Python的iOS自动化打包实例代码
2018/11/22 Python
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
分享一个pycharm专业版安装的永久使用方法
2019/09/24 Python
django template实现定义临时变量,自定义赋值、自增实例
2020/07/12 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
复古风格的女装和装饰品:ModCloth
2017/12/29 全球购物
Bodum官网:咖啡和茶壶、玻璃器皿、厨房电器等
2018/08/01 全球购物
俄罗斯家居用品购物网站:Евродом
2020/11/21 全球购物
数控技术专业毕业自荐书范文
2014/02/05 职场文书
2015年依法行政工作总结
2015/04/29 职场文书
法制主题班会教案
2015/08/13 职场文书
节约用水广告语60条
2019/11/14 职场文书
HTML5来实现本地文件读取和写入的实现方法
2021/05/25 HTML / CSS
HTML+CSS制作心跳特效的实现
2021/05/26 HTML / CSS