Bestimmte Zeilen in der Auswahl mit dem ONLYOFFICE-Makro einblenden

10 November 2022By Vlad

Bei der Arbeit mit einer Tabellenkalkulation möchten wir manchmal bestimmte Zeilen einblenden, um die Bearbeitung großer Datenmengen zu erleichtern. In diesem Blogbeitrag zeigen wir Ihnen, wie Sie diese Funktion mit einem kleinen, aber nützlichen ONLYOFFICE-Makro vereinfachen können.

Um diese Idee zu verwirklichen, werden wir die Methode SetHidden implementieren. Sie wurde bereits in einem anderen ONLYOFFICE-Makro verwendet, das Einblenden aller Zeilen und Spalten des Arbeitsblatts ermöglicht.

Hide specific rows in the selection using ONLYOFFICE macro

Der Makrocode ist folgender:

var activeSheet = Api.ActiveSheet;
var indexRowMax = 1048576;
var n = 1;
    for (let i = 0; i < indexRowMax; i++) {
        activeSheet.GetRows(n).SetHidden(false);
        n++;
    }

Um alle Zeilen des Dokuments einzublenden, setzen wir die Variable indexRowMax auf die maximale Anzahl von Zeilen. Dann verwenden wir sie in einer for-Schleife, die durch das gesamte Arbeitsblatt iteriert und jede Zeile ausblendet, indem wir die Eigenschaft der Methode SetHidden auf “false” ändern.

Das Makro “Zeilen in der Auswahl einblenden” erstellen

Wie Sie vielleicht schon erraten haben, kann die Methode SetHidden in beide Richtungen funktionieren. Sie ermöglicht sowohl das Einblenden als auch das Ausblenden der Zeilen. Wenn jedoch bestimmte Zeilen ausgeblendet werden sollen, ist die for-Schleife vielleicht nicht die beste Lösung. Stattdessen schlagen wir vor, eine Auswahl auf dem Dokument zu machen und sie mit der Funktion ForEach zu durchlaufen. Dies erleichtert das Einblenden bestimmter Zeilen der Auswahl in Abhängigkeit von den Zellwerten.

Zuerst erhalten wir also das aktive Blatt und die Auswahl:

var activeSheet = Api.ActiveSheet;
var selection = activeSheet.Selection;

Dann fügen wir die Funktion ForEach hinzu und durchlaufen jede Zelle in der Auswahl, um die Werte abzurufen:

selection.ForEach(function (range) { 
    var value = range.GetValue(); 

Nun fügen wir eine if-Anweisung hinzu, die den Index der Zeile ermittelt, die einen Wert kleiner als 35 enthält. Wir speichern diesen Index in einer Variablen und verwenden ihn als Parameter zum Einstellen der ausgeblendeten Zeile:

selection.ForEach(function (range) { 
    var value = range.GetValue();  
      if (value < "35") {   
    var row  = range.GetRow();
      range.GetRows(row[range]).SetHidden(true);
    }

Der gesamte Makrocode sieht wie folgt aus:

(function()
{
var activeSheet = Api.ActiveSheet;
var selection = activeSheet.Selection;
selection.ForEach(function (range) { 
    var value = range.GetValue();  
      if (value < "35") {   
    var row  = range.GetRow();
      range.GetRows(row[range]).SetHidden(true);
    }
});
})();

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

Wir hoffen, dass dieses kleine Makro die Verwaltung Ihrer Tabellenkalkulationsdaten vereinfacht. Es ist nur eines der vielen Beispiele dafür, was durch die Implementierung unserer API-Methoden erreicht werden kann. Unsere Makros basieren auf JavaScript, was sie extrem vielseitig und leicht an Ihre Bedürfnisse anpassbar macht.

Experimentieren Sie und erstellen Sie Ihre eigenen Makros. Sie können uns gerne Fragen stellen oder Ihre Ideen mit uns teilen. Wir sind offen für Diskussionen und Zusammenarbeit. Viel Glück bei Ihren Entdeckungen!