Ich versuche, die doppelten Einträge aus einer Spalte mit openpyxl zu entfernen und die eindeutigen Einträge in eine andere Arbeitsmappe zu schreiben.Openpyxl: Entfernen von doppelten Zellen aus einer Spalte
Eingabedatei:
Cust1 Cust1 Cust1 Cust2 Cust2 Cust3
Erwartete Ausgabe ist:
Cust1 Cust2 Cust3
wb1 = openpyxl.load_workbook('OldFile.xlsx')
ws = wb1.active
wb2 = openpyxl.Workbook()
ws2 = wb2.active
k=1
new_row1 = []
for i in range(2, ws.max_row + 1):
new_row1.append([]) #list for storing the unique entries
row_name = ws.cell(row=i,column=1).value #taking the 1st cell's value
new_row1[k].append(row_name) #Appending the list
ws2.append(new_row1) #writing to new workbook
k+=1
for j in range(3, ws.max_row + 1):
row_name2 = ws.cell(row=j, column=1).value #taking 2nd cell's value
if row_name == row_name2: #comparing both the values
i+=1
j+=1
wb2.save('NewFile.xlsx')
ich "IndexError: list index out of range" for line "new_row1[k].append(row_name)"
bin immer, auch abgesehen von den erwähnten Fehlern ist es etwas, das die bekommen geändert werden muss, um zu erforderliche Ausgabe.
Sie brauchen 'k = 0' anstelle von' k = 1'. Listen in Python beginnen mit Index 0. Verwenden Sie die Funktion 'set()', um eine Liste von Daten zu erstellen, die in Python eindeutig sind. Ihre Frage ist keine Excel-Frage, sondern eine 100% Python-Frage. – Elmex80s
Bitte verbringe etwas Zeit damit, dich mit der openpyxl-Dokumentation vertraut zu machen. Dies ist unnötig komplizierter Code. Zerlegen Sie es in Stücke, mit denen Sie leichter arbeiten können. –