Nascondi righe specifiche nella selezione utilizzando la macro ONLYOFFICE

14 novembre 2022By Elena

Quando si lavora con un foglio di calcolo, a volte si desidera nascondere righe specifiche per rendere più comoda la gestione di blocchi di dati. Questo post ti mostrerà come facilitare questa funzione con una piccola ma particolare macro ONLYOFFICE.

Per concretizzare questa idea, implementeremo il metodo SetHidden. È già stato utilizzato in un’altra macro di ONLYOFFICE che consente di mostrare tutte le righe e le colonne del foglio di calcolo.

Hide specific rows in the selection using ONLYOFFICE macro Il codice della macro è il seguente:

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

Per mostrare tutte le righe del documento, impostiamo la variabile indexRowMax sul numero massimo di righe. Quindi, lo utilizziamo in un ciclo che scorre l’intero foglio di calcolo e mostra ogni riga modificando la proprietà del metodo SetHidden su false.

Creazione della macro “Nascondere righe nella selezione”

Come avrai già intuito, il metodo SetHidden può funzionare in entrambi i modi. Consente non solo di scoprire le righe, ma anche di nasconderle. Tuttavia, se vogliamo nascondere alcune righe particolari, la soluzione for-loop potrebbe non essere l’opzione migliore. Ti suggeriamo invece di indirizzare la selezione sul documento e di iterarla con la funzione ForEach. Ciò faciliterà nascondere le righe specifiche sulla selezione a seconda dei valori della cella.

Quindi, per prima cosa, otteniamo il foglio attivo e la selezione:

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

Quindi aggiungiamo la funzione ForEach e iteriamo ogni cella nella selezione per recuperare i valori:

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

Ora aggiungiamo un’istruzione if che otterrà l’indice della riga contenente un valore inferiore a 35. Memorizziamo questo indice in una variabile e lo usiamo come parametro per impostare la riga nascosta:

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

L’intero codice della macro è il seguente:

(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);
    }
});
})();

Ora eseguiamo la nostra macro e vediamo come funziona!

Ci auguriamo che questa piccola macro renda più comoda la gestione dei dati del foglio di calcolo. È solo uno dei tanti esempi di ciò che si può ottenere implementando i nostri metodi API. Le nostre macro sono basate su JavaScript, il che le rende estremamente versatili e facili da adattare alle tue esigenze.

Ti invitiamo a sperimentare e creare le tue macro. Sentiti libero di porre domande o condividere le tue idee con noi. Siamo aperti alla discussione e alla cooperazione. In bocca al lupo per i tuoi sforzi esplorativi!