🙏 Helfen Sie mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Leerzeilen löschen

Alles zur Programmierung im LibreOffice.
Antworten
Trudchen
Beiträge: 7
Registriert: Mo 16. Apr 2018, 14:20

Leerzeilen löschen

Beitrag von Trudchen » So 21. Jul 2024, 10:23

Moin, moin liebe Leute,
ich brauche eure Hilfe. Ich breche mein Problem mal auf das absolut Notwendige herunter: Ich habe eine Spalte (A, bzw. 0) und in dieser Spalte 8 Einträge. Der letzte Spalteneintrag befindet sich in Zeile 10 – also befinden sich einige Leerzeilen in der Spalte. Und diese möchte ich mit einem Befehl oder Algorithmus löschen. In meinem konkreten Problem habe ich über 14.000 Zeilen, in denen sich eine unbekannte Anzahl von Leerzeilen befindet – aber das nur nebenbei. Nach stundenlanger Recherche bin ich immer nur darauf gestoßen, wie man in Calc diese leeren Zeilen löschen kann, sodass man einen lückenlosen Bereich erhält. Aber in LibreOffice Basic? Fehlanzeige! Der Code von VBA funtzt nicht, auch nicht mit >Option VBASupport 1<. Für jede Hilfe oder jeden Hinweis bedanke ich mich schon mal im voraus. Danke, danke, danke!

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2533
Registriert: Fr 10. Dez 2010, 10:01

Re: Leerzeilen löschen

Beitrag von karolus » So 21. Jul 2024, 11:08

Hallo
Die »nix mit Makro« -methode:

⇒ Daten ⇒ Weitere Filter ⇒ Standardfilter :
»Spalte A« »=« »nicht leer«

⇒⇒ Optionen:
[x]Ausgabe nach <wohin immer du möchtest>


ps. vor gut Fünf Wochen hattest du ja schon mal im Prinzip die gleiche Frage… sind die Erkenntnisse daraus im Sommerloch verschwunden?
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

mikele
* LO-Experte *
Beiträge: 1929
Registriert: Mo 1. Aug 2011, 20:51

Re: Leerzeilen löschen

Beitrag von mikele » So 21. Jul 2024, 12:49

Hallo,
ich habe mich mal wieder in Python versucht:

Code: Alles auswählen

def leerzeilen_entfernen():
    doc = XSCRIPTCONTEXT.getDocument()
    tab= doc.Sheets[0]
    leer = tab.Columns.A.queryEmptyCells()[::-1][1:]
    for leerzeilen in leer:
        otab.Rows.removeByIndex(leerzeilen.Rows[0].RangeAddress.StartRow, leerzeilen.Rows.Count)
Ergänzumg/Korrektur:
Anstelle von

Code: Alles auswählen

    oleer = otab.Columns.A.queryEmptyCells()[::-1][1:]
besser

Code: Alles auswählen

    oleer = otab.Columns.A.queryEmptyCells()[-2::-1]
Gruß,
mikele

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2533
Registriert: Fr 10. Dez 2010, 10:01

Re: Leerzeilen löschen

Beitrag von karolus » So 21. Jul 2024, 13:15

Hallo Mikele
ohne »o« ;) und von oben nach unten direkt auf den »Rows« der »leerzeilen«:

Code: Alles auswählen

def leerzeilen_entfernen():
    doc = XSCRIPTCONTEXT.getDocument()
    tab= doc.Sheets[0]
    leer = tab.Columns.A.queryEmptyCells()[:-1]
    for leerzeilen in leer:
        leerzeilen.Rows.removeByIndex(0, leerzeilen.Rows.Count)
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

mikele
* LO-Experte *
Beiträge: 1929
Registriert: Mo 1. Aug 2011, 20:51

Re: Leerzeilen löschen

Beitrag von mikele » So 21. Jul 2024, 13:24

Hallo karolus,
na klar - removeByIndex() auf die leerzeilen(bereiche) anwenden und nicht auf die ganze Tabelle ... :oops:
Gruß,
mikele


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten