Import von Daten mit openpyxl

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
TuXX
User
Beiträge: 24
Registriert: Sonntag 25. Juni 2017, 17:52

Als Ausganspunkt habe ich eine Exceldatei mit einer Spalte, welche ein bestimmtes Schlüsselwort enthält und auf dieser Basis wird ein bestimmter Teil des Strings herausgeschnitten. Die Exceldatei hat ca. 1500 Zeilen. Während des beim Auslesen einer Linie wie gewünscht funktioniert, streikt das Programm, wenn ich über die for Schleife die 1500 Zeilen lesen möchte, allerdings bin ich einigermassen ratlos, warum das Skript nach der ersten Zeile mit einer Fehlermeldung abbricht.

Code: Alles auswählen

from openpyxl import load_workbook
wb = load_workbook(filename = 'test.xlsx') #Tabellenname
sheet = wb.get_sheet_by_name('Tabelle1')
sub = "Var-ID" # zu suchender String

for i in range (2,1000,1):
    str = sheet.cell (row=i, column=46).value
    pos = str.find(sub,0) # Position des gefundenen Text Anfang
    pos2 = pos+16
    print (pos) # Positionsnuammer des gefundenen Textes abdrucken
    sto = str[pos:pos2] #Ausschneiden des Abschnittes im String von Pos bis Pos2
    print (sto) #Abdrucken des Stringabschnittes
Die Fehlermeldung mit der abgebrochen wird ist: AttributeError: 'NoneType' object has no attribute 'find'

Hat jemand eine Idee war hier schief läuft. Im Voraus vielen Dank für eure Hilfe!
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

@TuXX: leere Zellen haben einen Wert von None. Also entweder bist Du in der falschen Spalte, oder leere Zellen sind valide und Du mußt diesen Fall berücksichtigen.
Antworten