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优化技巧之利用ctypes提高执行速度
Sep 11 Python
Flask框架的学习指南之用户登录管理
Nov 20 Python
python分割列表(list)的方法示例
May 07 Python
python正则表达式爬取猫眼电影top100
Feb 24 Python
Python实现简单的文本相似度分析操作详解
Jun 16 Python
python中的decorator的作用详解
Jul 26 Python
Python中logging.NullHandler 的使用教程
Nov 29 Python
python中单下划线(_)和双下划线(__)的特殊用法
Aug 29 Python
基于python实现蓝牙通信代码实例
Nov 19 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
Feb 26 Python
python中requests库+xpath+lxml简单使用
Apr 29 Python
Python实现信息管理系统
Jun 05 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 adodb分页实现代码
2009/03/19 PHP
PHP 变量定义和变量替换的方法
2009/07/30 PHP
PHP 开发环境配置(测试开发环境)
2010/04/28 PHP
mysql,mysqli,PDO的各自不同介绍
2012/09/19 PHP
深入PHP autoload机制的详解
2013/06/09 PHP
PHP开发之用微信远程遥控服务器
2018/01/25 PHP
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
js和php如何获取当前url的内容
2013/09/22 Javascript
JQuery对class属性的操作实现按钮开关效果
2013/10/11 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
JS实现弹性漂浮效果的广告代码
2015/09/02 Javascript
利用CSS3在Angular中实现动画
2016/01/15 Javascript
基于bootstrap的文件上传控件bootstrap fileinput
2016/12/23 Javascript
jQuery上传多张图片带进度条样式(DEMO)
2017/03/02 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
2017/05/20 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
使用vue根据状态添加列表数据和删除列表数据的实例
2018/09/29 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
解决Vue中 父子传值 数据丢失问题
2019/08/27 Javascript
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
详解使用mocha对webpack打包的项目进行"冒烟测试"的大致流程
2020/04/27 Javascript
Python打包文件夹的方法小结(zip,tar,tar.gz等)
2016/09/18 Python
Python文件的读写和异常代码示例
2017/10/31 Python
Python爬虫爬取一个网页上的图片地址实例代码
2018/01/16 Python
python将字典内容存入mysql实例代码
2018/01/18 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
全球最大的网上自行车商店:Chain Reaction Cycles
2016/12/02 全球购物
一套Delphi的笔试题一
2016/02/14 面试题
自荐信格式范文
2013/10/07 职场文书
护士的岗位职责
2013/12/04 职场文书
诚信考试承诺书
2014/03/27 职场文书
2014年清明节寄语
2014/04/03 职场文书
机关党总支领导班子整改方案
2014/09/20 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书
VMware虚拟机安装 Windows Server 2022的详细图文教程
2022/09/23 Servers