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 10 Python
Python实现基本数据结构中队列的操作方法示例
Dec 04 Python
Python标准库笔记struct模块的使用
Feb 22 Python
简单实现python数独游戏
Mar 30 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
Oct 26 Python
对python产生随机的二维数组实例详解
Dec 13 Python
python3+pyqt5+itchat微信定时发送消息的方法
Feb 20 Python
Python django框架应用中实现获取访问者ip地址示例
May 17 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
Jan 21 Python
Python @property装饰器原理解析
Jan 22 Python
tensorflow 模型权重导出实例
Jan 24 Python
Python调用SMTP服务自动发送Email的实现步骤
Feb 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
分享PHP入门的学习方法
2007/01/02 PHP
php与mysql建立连接并执行SQL语句的代码
2011/07/04 PHP
PHP的关于变量和日期处理的一些面试题目整理
2015/08/10 PHP
javascript options属性集合操作代码
2009/12/28 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
Jquery实现瀑布流布局(备有详细注释)
2015/07/31 Javascript
js如何实现淡入淡出效果
2020/11/18 Javascript
对象题目的一个坑 理解Javascript对象
2015/12/22 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
2016/08/25 Javascript
Angular2学习笔记——详解路由器模型(Router)
2016/12/02 Javascript
Angular2使用jQuery的方法教程
2017/05/28 jQuery
详解AngularJs路由之Ui-router-resolve(预加载)
2017/06/13 Javascript
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
解决iview打包时UglifyJs报错的问题
2018/03/07 Javascript
jsonp跨域及实现百度首页联想功能的方法
2018/08/30 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
微信小程序云函数使用mysql数据库过程详解
2019/08/07 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
Python使用python-docx读写word文档
2019/08/26 Python
详解CSS3 弹性布局快速入门
2019/06/06 HTML / CSS
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
浅析HTML5 Landmark
2020/09/11 HTML / CSS
历史专业个人求职信分享
2013/12/20 职场文书
《最大的“书”》教学反思
2014/02/14 职场文书
关于环保的建议书400字
2014/03/12 职场文书
中央空调节能方案
2014/06/15 职场文书
小学美术兴趣小组活动总结
2014/07/07 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
学习十八大的心得体会
2014/09/12 职场文书
2014教师专业技术工作总结
2014/12/03 职场文书
乡镇团代会开幕词
2016/03/04 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书