Letzte Zeile in Excel

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
forumseeker
User
Beiträge: 20
Registriert: Freitag 5. Januar 2024, 15:04

Hallo,

ich bin neu hier und arbeite mich neu in Python ein.

Ich benötige die letzte unbeschriebene Zeile, aber das Problem ist, die Spalte A ist mit fortlaufenden Nummern belegt. D.h. wenn ich über openpyxl mir die letzte aktive Zelle ausgebe, dann kommt immer die letzte Zeile der eingebenen Spalte A. Ich will aber, dass der letzte Wert z.B. der Spalte B ausgegeben wird. Kann man das machen und wenn ja, wie?

Gruss,

Andreas
karolus
User
Beiträge: 144
Registriert: Samstag 22. August 2009, 22:34

Ich will aber, dass der letzte Wert z.B. der Spalte B ausgegeben wird. Kann man das machen und wenn ja, wie?

Code: Alles auswählen

import openpyxl

wb = openpyxl.open("/dein/pfad/zur/…….xlsx")
lastvalue = wb["Tabelle11"]["B"][-1].value #der letzte Wert von Spalte B in Tabelle11
print(lastvalue)
forumseeker
User
Beiträge: 20
Registriert: Freitag 5. Januar 2024, 15:04

Vielen Dank für den Tipp, aber funktioniert leider nicht, da openpyxl offensichtlich die Zellen "daneben" auch als befüllte Zellen sieht, obwohl sie leer sind.

Zur Verdeutlichung: in Spalte A wird von mir eine fortlaufende Inventar-Nummer eingetragen. Die trage ich schon mal vor. Sobald ein Benutzer etwas inventarisiert, befüllt er die nächste freien Zellen mit den entprechenden Werten.

Gruss,
Andreas
Sirius3
User
Beiträge: 18251
Registriert: Sonntag 21. Oktober 2012, 17:20

Du mußt definieren, was bei Dir "letzte Zeile" heißt. Und dieses Kriterium mußt Du explizit prüfen. Zum Beispiel, die letzte Zelle, die noch einen Wert enthält:

Code: Alles auswählen

cell = [cell for cell in wb["Tabelle11"]["B"] if cell.value is not None][-1]
Benutzeravatar
grubenfox
User
Beiträge: 601
Registriert: Freitag 2. Dezember 2022, 15:49

Wobei der Wert der in einer Zelle steht zum Beispiel auch einfach nur aus Leerzeichen bestehen kann...
Benutzeravatar
__blackjack__
User
Beiträge: 14000
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@forumseeker: Benötigst Du tatsächlich „die letzte unbeschriebene Zeile“? Denn dann wäre ja tatsächlich die Frage was das sein soll und in Relation zu was. Welche Spalte bestimmt denn die Zeilenanzahl? Spalte A hast Du ja schon mal ausgeschlossen. Oder suchst Du in Wirklichkeit die *erste* unbeschriebene Zelle in Spalte B? Kann/darf es Lücken in Spalte B geben? Was soll passieren wenn eine Lücke vorhanden ist, auch wenn es die nicht geben darf? Was soll passieren wenn Spalte B bereits voll ist, und wie ist das definiert?
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
Antworten