Mit dem ONLYOFFICE-Makro Zeilen und Spalten einer Tabellenkalkulation ausblenden und wieder einblenden

10 August 2023By Vlad

Die Verwaltung großer Datenmengen kann zeitaufwändig sein. Hier kommen die Makros von ONLYOFFICE ins Spiel, die Aufgaben automatisieren und das Potenzial Ihrer Tabellenkalkulation voll ausschöpfen. In diesem Blogbeitrag zeigen wir Ihnen, wie Sie ein benutzerfreundliches Makro erstellen, das bestimmte Zeilen und Spalten ausblendet oder einblendet. Wir haben zwar ein ähnliches Makro im Abschnitt Makrobeispiele unserer Dokumentation, aber mit diesem Makro werden wir noch einen Zahn zulegen und es noch benutzerfreundlicher gestalten.

Hide and unhide spreadsheet rows and columns with ONLYOFFICE macro

Erstellung des Makros

Zunächst rufen wir das derzeit aktive Blatt im ONLYOFFICE-Arbeitsblatt ab und weisen es der Variablen Blatt zu:

const sheet = Api.GetActiveSheet()

Dann definieren wir einen Bereich, der die Zellen von Spalte A (Zelle A1) bis Spalte M (Zelle M1) des aktiven Blattes umfasst. Wir werden diesen Bereich verwenden, um die Spalten zu bearbeiten:

 const range = sheet.GetRange("A1:M1")

Danach wird das Array rowsToHide erstellt, das die Zeilennummern enthält, die ein- oder ausgeblendet werden müssen. Dieses Array kann durch Hinzufügen oder Entfernen von Zeilennummern angepasst werden:

const rowsToHide = [5, 8, 9, 12, 14, 16, 21, 22, 31, 32, 33]

Außerdem erstellen wir das Array columnsToHide. Es enthält die Spaltennummern, die ausgeblendet bzw. wieder eingeblendet werden müssen:

const columnsToHide = [2,4,5,7,8,10,11,13,14,16]

Dann wird der ausgeblendete Status der ersten im Array rowsToHide angegebenen Zeile abgefragt. Wenn die erste Zeile ausgeblendet ist, wird die Eigenschaft SetHidden() der übrigen Zeilen und Spalten auf false gesetzt. So können wir die ausgewählten Zeilen und Spalten wieder einblenden. Wenn die erste Zeile des Arrays rowsToHide nicht ausgeblendet ist, wird die Eigenschaft SetHidden() auf true gesetzt, was das Ausblenden des Zielbereichs erleichtert:

const hidden = sheet.GetRows(rowsToHide[0]).GetHidden()

Dann führen wir die Funktion hideUnhideDetails aus. Sie ist dafür verantwortlich, dass die Zeilen und Spalten je nach Ausblendungsstatus ein- oder ausgeblendet werden. Schauen wir sie uns genauer an:

function hideUnhideDetails(hidden) {
        rowsToHide.forEach(row => {
            sheet.GetRows(row).SetHidden(!hidden)
        })

Diese Schleife durchläuft jede Zeilennummer, die im Array rowsToHide angegeben ist, und verwendet die Methode SetHidden(), um die jeweilige Zeile auf der Grundlage des Gegenteils des hidden-Status ein- oder auszublenden. Wenn hidden zum Beispiel true ist, wird die Zeile nicht ausgeblendet (!hidden ist false), und wenn hidden false ist, wird die Zeile ausgeblendet (!hidden ist true).

  columnsToHide.forEach(column => {
            range.GetCols(column).SetHidden(!hidden)
        })
    }

Diese Schleife durchläuft jede im Array columnsToHide angegebene Spaltennummer und verwendet dann SetHidden(), um die Spalte ein- oder auszublenden.

Der gesamte Makrocode lautet wie folgt:

(function()
{
    const sheet = Api.GetActiveSheet()
    const range = sheet.GetRange("A1:M1")
    const rowsToHide = [5, 8, 9, 12, 14, 16, 21, 22, 31, 32, 33]
    const columnsToHide = [2,4,5,7,8,10,11,13,14,16]
    const hidden = sheet.GetRows(rowsToHide[0]).GetHidden()
    hideUnhideDetails(hidden)
    // Unhide if hidden, Hide if unhidden
    function hideUnhideDetails(hidden) {
        rowsToHide.forEach(row => {
            sheet.GetRows(row).SetHidden(!hidden)
        })
        columnsToHide.forEach(column => {
            range.GetCols(column).SetHidden(!hidden)
        })
    }
})();

Führen wir nun unser Makro aus und sehen wir, wie es funktioniert!

Wir hoffen, dass dieses Makro Ihnen bei der Verwaltung großer Datenmengen Zeit und Mühe erspart und es Ihnen ermöglicht, sich auf die für Ihre Arbeit wichtigsten Informationen zu konzentrieren. Die Verwendung von Makros ermöglicht es Ihnen, das Potenzial von ONLYOFFICE voll auszuschöpfen und Ihre Produktivität erheblich zu steigern.

Wir möchten Sie ermutigen, die Möglichkeiten von Makros in ONLYOFFICE weiter zu erforschen. Mit einem tieferen Verständnis der ONLYOFFICE-Makros können Sie Aufgaben automatisieren, die Produktivität steigern und Dokumente individuell anpassen. Teilen Sie Ihre Ideen und Fragen mit uns. Wir freuen uns darauf, mit Ihnen zusammenzuarbeiten. Wir wünschen Ihnen viel Erfolg bei Ihren Erkundungen!