国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python 如何快速找出兩個電子表中數(shù)據(jù)的差異

2020-01-04 17:14:25
字體:
供稿:網(wǎng)友

最近剛接觸python,找點小任務(wù)來練練手,希望自己在實踐中不斷的鍛煉自己解決問題的能力。

公司里會有這樣的場景:有一張電子表格的內(nèi)容由兩三個部門或者更多的部門用到,這些員工會在維護(hù)這些表格中不定期的跟新一些自己部門的數(shù)據(jù),時間久了,大家的數(shù)據(jù)就開始打架了,非常不利于管理。怎樣快速找到兩個或者多個電子表格中數(shù)據(jù)的差異呢?

解決辦法:

1. Excel自帶的方法(有興趣的自行百度)

2. python 寫一個小腳本

#!/usr/bin/env python# -*- coding: utf-8 -*-#導(dǎo)入模塊 openpyxl import openpyxlfrom openpyxl.styles import PatternFillfrom openpyxl.styles import colorsfrom 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')#定義一個方法來獲取表格中某一列的內(nèi)容,返回一個列表#在這里,我的表格中:IP是具有唯一性的,所以我用它來區(qū)分?jǐn)?shù)據(jù)的差異,而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)#將兩個列表轉(zhuǎn)換成集合aa = set(ip_a)bb = set(ip_b)#找出兩個列表的不同行,并轉(zhuǎn)換成列表difference = list(aa ^ bb)#打印出列表中的元素#到這一步,兩個表格中不同的數(shù)據(jù)已經(jīng)被找出來了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的副本,并在這個副本中用單元格填充色和字體顏色標(biāo)注出兩個表格中不同的數(shù)據(jù)差異

未解決:

1. 怎樣將這些有差異的數(shù)據(jù)補(bǔ)充到一張表里,形成一個全集表

2. 怎么優(yōu)化精簡代碼

以上這篇python 如何快速找出兩個電子表中數(shù)據(jù)的差異就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網(wǎng)。

 
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 通州区| 泰州市| 棋牌| 鹤峰县| 聂拉木县| 镇平县| 临洮县| 中西区| 石嘴山市| 高平市| 古交市| 舟曲县| 新密市| 佛教| 博罗县| 高青县| 凤翔县| 乃东县| 合江县| 玛纳斯县| 武邑县| 北票市| 翼城县| 双辽市| 凤翔县| 石家庄市| 长宁县| 辉县市| 左云县| 衢州市| 丰宁| 鄯善县| 合江县| 巧家县| 祁连县| 桐乡市| 绍兴县| 邻水| 邻水| 浪卡子县| 靖西县|