Heim >Backend-Entwicklung >Python-Tutorial >Eine Einführung, wie Python schnell den Unterschied zwischen Daten in zwei Tabellenkalkulationen finden kann

Eine Einführung, wie Python schnell den Unterschied zwischen Daten in zwei Tabellenkalkulationen finden kann

黄舟
黄舟Original
2017-05-28 11:15:212138Durchsuche

Der unten stehende Herausgeber bringt Ihnen einen Artikel Python darüber, wie Sie schnell den Unterschied in den Daten in zwei Tabellenkalkulationen finden können. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Herausgeber und werfen wir einen Blick darauf.

Ich bin gerade auf der Suche nach kleinen Aufgaben, um meine Fähigkeiten zur Problemlösung zu trainieren in der Praxis.

Es wird ein solches Szenario im Unternehmen geben: Es gibt ein elektronisches Formular , das von zwei, drei oder mehr Abteilungen verwendet wird. Diese Mitarbeiter werden diese Formulare von Zeit zu Zeit pflegen Wenn Sie einige Daten Ihrer eigenen Abteilung aktualisieren, werden mit der Zeit alle Daten in Konflikt geraten, was sich sehr nachteilig auf das Management auswirkt. Wie kann man schnell die Unterschiede in den Daten in zwei oder mehr Tabellenkalkulationen finden?

Lösung:

1. Die Methode, die mit Excel geliefert wird (wenn Sie interessiert sind, verwenden Sie Baidu selbst )

2. Schreiben Sie ein kleines Skript in 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')

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

Ungelöst:

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

2. Wie man den Code optimiert und rationalisiert

Das obige ist der detaillierte Inhalt vonEine Einführung, wie Python schnell den Unterschied zwischen Daten in zwei Tabellenkalkulationen finden kann. 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