Heim  >  Artikel  >  Backend-Entwicklung  >  Finden Sie schnell Unterschiede in den Daten in zwei Tabellenkalkulationen

Finden Sie schnell Unterschiede in den Daten in zwei Tabellenkalkulationen

大家讲道理
大家讲道理Original
2017-05-28 10:05:152356Durchsuche

Ich bin gerade erst mit Python in Kontakt gekommen und suche nach kleinen Aufgaben, um meine Fähigkeiten weiter zu üben.

Es wird ein solches Szenario im Unternehmen geben: Der Inhalt einer Tabellenkalkulation wird von zwei, drei oder mehr Abteilungen verwendet. Diese Mitarbeiter aktualisieren von Zeit zu Zeit einige ihrer eigenen Abteilungen, während sie diese Tabellen pflegen Mit der Zeit beginnen die Daten aller zu kämpfen, was für das Management sehr ungünstig ist. Wie kann man schnell die Datenunterschiede in zwei oder mehr Tabellenkalkulationen finden?

Lösung:

1. Excel-eigene Methode (Baidu bei Interesse)

2. Schreiben Sie ein kleines Skript in Python


 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3  4 #导入模块 openpyxl   5 import openpyxl 6 from openpyxl.styles import PatternFill 7 from openpyxl.styles import colors 8 from openpyxl.styles import Font, Color 9 10 #读取excel文件11 #括号中的字符串为你要比较的两个excel的路径,注意用“/”12 wb_a = openpyxl.load_workbook('d:/BAKFILE/d046532/Desktop/check excel/test.xlsx')13 wb_b = openpyxl.load_workbook('d:/BAKFILE/d046532/Desktop/check excel/test2.xlsx')14 #定义一个方法来获取表格中某一列的内容,返回一个列表15 #在这里,我的表格中:IP是具有唯一性的,所以我用它来区分数据的差异,而IP这一列在我的表格中是第“G”列16 def getIP(wb):17     sheet = wb.get_active_sheet()18     ip = []19     for cellobj in sheet['G']:20         ip.append(cellobj.value)21 22     return ip23 #获得ip列表24 ip_a = getIP(wb_a)25 ip_b = getIP(wb_b)26 #将两个列表转换成集合27 aa = set(ip_a)28 bb = set(ip_b)29 #找出两个列表的不同行,并转换成列表30 difference = list(aa ^ bb)31 #打印出列表中的元素32 #到这一步,两个表格中不同的数据已经被找出来了33 for i in difference:34     print (i)35 36 #将不同行高亮显示37 print ("开始第一张表" + "----" *10)38 a = wb_a.get_active_sheet()['G']39 for cellobj in a:40     if cellobj.value in difference:41         print (cellobj.value)42         cellobj.font = Font(color=colors.BLACK, italic=True ,bold = True)43         cellobj.fill = PatternFill("solid", fgColor="DDDDDD")44 print ("开始第二张表" + "----" *10)45 b = wb_b.get_active_sheet()['G']46 for cellobj in b:47     if cellobj.value in difference:48         print (cellobj.value)49         cellobj.font = Font(color=colors.BLACK, italic=True ,bold = True)50         cellobj.fill = PatternFill("solid", fgColor="DDDDDD")51 52 wb_a.save('d:/BAKFILE/d046532/Desktop/a.xlsx')53 wb_b.save('d:/BAKFILE/d046532/Desktop/b.xlsx')

Auf diese Weise werden zwei Kopien von Excel gespeichert und die Zellenfüllfarbe und die Schriftfarbe werden verwendet, um die unterschiedlichen Datenunterschiede in den beiden Tabellen in dieser Kopie zu markieren

Ungelöst:

1. Wie man diese verschiedenen Daten in eine Tabelle einfügt, um eine vollständige Tabelle zu bilden

2. Wie man den Code optimiert und rationalisiert

Das obige ist der detaillierte Inhalt vonFinden Sie schnell Unterschiede in den Daten in zwei Tabellenkalkulationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Python E-Mail sendenNächster Artikel:Python E-Mail senden