🍀 Das LibreOffice Forum braucht HEUTE Ihre Hilfe! 🍀
❤️ Spenden Sie jetzt und sichern Sie die Zukunft unseres LibreOffice-Forums ❤️
Ihre Spende hilft, die Community offen, werbefrei (bei Registrierung) und lebendig zu halten. Vielen lieben Dank!

🙏 DANKE >> << DANKE 🙏

>> Das LibreOffice-Forum lebt von Ihnen – und von vielen Experten, die freiwillig und kostenlos ihr Wissen teilen.<<
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: 2712
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?
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

mikele
* LO-Experte *
Beiträge: 2046
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: 2712
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)
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

mikele
* LO-Experte *
Beiträge: 2046
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:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das laufende.
Einfach per Kreditkarte oder PayPal. Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.



❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten