日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

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

系統(tǒng) 2344 0

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

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

解決辦法:

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

2. python 寫一個小腳本

            
#!/usr/bin/env python
# -*- coding: utf-8 -*-

#導(dǎo)入模塊 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')
#定義一個方法來獲取表格中某一列的內(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)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 自治县| 枣阳市| 莎车县| 通道| 屏边| 鞍山市| 宁都县| 安吉县| 康保县| 吉木乃县| 岳普湖县| 治多县| 邵阳县| 武清区| 普格县| 普兰店市| 佛坪县| 云梦县| 教育| 漳平市| 洛南县| 黄骅市| 咸宁市| 横山县| 和顺县| 稷山县| 天津市| 海盐县| 营口市| 东乌珠穆沁旗| 朔州市| 东港市| 紫阳县| 九龙坡区| 岗巴县| 荔浦县| 丹江口市| 泗洪县| 石家庄市| 遂宁市| 通化市|