最近刚接触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 如何快速找出两个电子表中数据的差异

本文地址: http://www.cppcns.com/jiaoben/python/192158.html

python 比对两个excel表数据_python 如何快速找出两个电子表中数据的差异相关推荐

  1. 表格字体缩小 php_如何快速找出两个Excel表格不同的地方?

    上一篇文章介绍了如何快速找出两个word文档不同的地方,这篇文章来说说如何快速找出两个Excel表格不同的地方,这里说的两个Excel表格,可以是同一个工作簿的不同sheet,也可以是两个不同的Exc ...

  2. 已知2个整形数据a,b.不使用if,?:以及其他任何条件判断的语法,找出a跟b中数据的大者。

    已知2个整形数据a,b.不使用if,?:以及其他任何条件判断的语法,找出a跟b中数据的大者. 答案: int max(int a,int b) { return (a+b+abs(a-b))/2; } ...

  3. js 快速找出两个数组中的不同元素或对象

    js 快速找出两个数组中的不同元素 var arr1 = [0,1,2,3,4,5]; var arr2 = [0,4,6,1,3,9]; function getArrDifference(arr1 ...

  4. 快速找出两个字符串中所有相同的字符

    面试时看到一个试题, 编写算法, 快速找出两个字符串中所有相同的字符. 现实现如下: 1. 利用TreeSet来查找是否有相同的字符(之前是利用TreeSet来查找) 2. 利用HashSet来查找是 ...

  5. php 随机两位小数数_使用8086微处理器找出两个8位N数数组

    php 随机两位小数数 Problem statement: 问题陈述: Write a program in 8086 microprocessor to find out the sum of t ...

  6. 快速找出两个Word文档之间的差别

    我们经常会遇到这样的问题:两份Word文件之中,只有一些极为细小的区别,如果单纯通过人工的方法去进行校对,那么不仅效率很低,而且也容易出错,容易漏掉一些不太明显的区别.Word 2003已经内置了一个 ...

  7. 【Python数据分析】利用Python快速对两个EXCEL表格进行内容比较并找出差异

    如何快速找到两个EXCEL表格的数据差异?今天就与大家分享如何利用Python数据分析3分钟搞定,不管EXCEL表格有多少行数据,代码总是那么几行.不多说了,上案例(文末附Python数据分析案例下载 ...

  8. 快速找出两个列表差异部分

    2019独角兽企业重金招聘Python工程师标准>>> int [] arr0 = new int [] {1 ,5 ,12 ,21 ,11 ,15 ,8 ,30} ;int [] ...

  9. 如何快速找出两直线交点?

    我们在CAD中经常会遇到各类的问题,如果想要让CAD中两条直线相交该怎么办呢?下面来教你解决的方法. 1.我们使用迅捷CAD编辑器,然后我们输入"EX",在弹出的多个命令中,选择第 ...

  10. 数据表很多,sqlmap快速找出存放用户名和密码的表,一把梭

    这两天打战,突然发现了有个巨多无比数据库的sql注入漏洞,漏洞是找到了,可怎么去翻找用户名和密码存放在哪个表了? 其中一个少的数据库就已经有35个表格存在了,假设在命名没有规律的情况下如何查找呢. 可 ...

最新文章

  1. 分库分表架构实践(文末送书)
  2. mysql主从复制、redis基础、持久化和主从复制
  3. ASP.NET MVC 过滤器(三)
  4. matlab 图像处理函数(第八章) 图像的增强
  5. c++求矩阵的秩_Matlab:矩阵的秩,简化梯形矩阵和线性方程组
  6. 编程 音量键_盘点市面上那些千元级高逼格的键盘 灯光炫酷 多宏编程
  7. Android沉浸式通知栏设计
  8. js 读取excel 导入mysql_可以读取EXCEL文件的js代码
  9. 模拟退火 (poj 2420, poj 2069)
  10. Mac使用技巧:在“快速查看”中查看和编辑文件
  11. vue条形码,二维码,打印总结分享
  12. 字体编码—Unicode16进制编码转字符
  13. 信息技术专项习题汇总
  14. 抖音视频什么时候投放dou+最好,dou+投放实战总结:国仁网络资讯
  15. Latex表格一格内换行
  16. Python values()函数用法
  17. [Java实验 5] 异常处理
  18. JavaScript红皮书学习笔记
  19. PostgreSQL变更表Owner
  20. 【ExpandTabView】Android 仿大众,美团下拉菜单ExpandTabView

热门文章

  1. IEEE access参考文献的添加
  2. 软考高级系统分析师下午历年真题
  3. 《Python黑帽子》学习笔记
  4. linux android 电容 触摸屏驱动 差别,Android 4.0 触摸屏驱动调试记录
  5. linux变utf8为sjis命令,【通译】PHP中 文字编码变换时 使用SJIS-win而非SJIS,使用eucJP-win而非EUC-JP...
  6. python中模运算_Python中的模运算
  7. 科研伦理与学术规范2021秋期末考答案|网课期末考答案|学堂在线|北京师范大学印波副教授
  8. 二维码中间嵌入logo
  9. 买了两年CSDN年VIP,用着实在太爽
  10. PID控制算法+倒立摆控制应用