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 中__name__ = '__main__' 的作用
Jul 05 Python
python基于xml parse实现解析cdatasection数据
Sep 30 Python
Python实现类的创建与使用方法示例
Jul 25 Python
virtualenv实现多个版本Python共存
Aug 21 Python
Zookeeper接口kazoo实例解析
Jan 22 Python
python定时复制远程文件夹中所有文件
Apr 30 Python
Python多叉树的构造及取出节点数据(treelib)的方法
Aug 09 Python
Python流程控制 if else实现解析
Sep 02 Python
python队列原理及实现方法示例
Nov 27 Python
Python3交互式shell ipython3安装及使用详解
Jul 11 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
Jan 05 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
Feb 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内核(一)
2015/11/10 PHP
PHP7创建销毁session的实例方法
2020/02/03 PHP
ExtJS 2.0实用简明教程 之Ext类库简介
2009/04/29 Javascript
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
2012/12/11 Javascript
当前页禁止复制粘贴截屏代码小集
2013/07/24 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
2014/03/03 Javascript
JavaScript基础知识学习笔记
2014/12/02 Javascript
JavaScript中Cookie操作实例
2015/01/09 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
2015/03/20 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
Google 爬虫如何抓取 JavaScript 的内容
2017/04/07 Javascript
jQuery选择器之属性过滤选择器详解
2017/09/28 jQuery
webpack实用小功能介绍
2018/01/02 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
element-ui上传一张图片后隐藏上传按钮功能
2019/05/22 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
bootstrap实现嵌套模态框的实例代码
2020/01/10 Javascript
在windows下快速搭建web.py开发框架方法
2016/04/22 Python
Python机器学习之K-Means聚类实现详解
2018/02/22 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
python向图片里添加文字
2019/11/26 Python
基于Python获取照片的GPS位置信息
2020/01/20 Python
Python版中国省市经纬度
2020/02/11 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
2020/06/18 Python
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
Java语言程序设计测试题改错题部分
2014/07/22 面试题
大学生翘课检讨书范文
2014/10/06 职场文书
南京大屠杀观后感
2015/06/02 职场文书
办公室卫生管理制度
2015/08/04 职场文书
导游词书写之黄山
2019/08/06 职场文书
mysql全面解析json/数组
2022/07/07 MySQL