Masquer des lignes spécifiques dans la sélection à l’aide de la macro ONLYOFFICE

10 novembre 2022By Dasha

Lorsque l’on travaille avec une feuille de calcul, il arrive que l’on souhaite masquer des lignes spécifiques afin de faciliter la manipulation de gros morceaux de données. Ce billet de blog vous montrera comment faciliter cette fonctionnalité avec une petite macro ONLYOFFICE originale.

Pour concrétiser cette idée, nous allons mettre en œuvre la méthode SetHidden. Elle a déjà été utilisée dans une autre macro ONLYOFFICE qui permet de démasquer toutes les lignes et colonnes de la feuille de calcul.

Hide specific rows in the selection using ONLYOFFICE macro Le code de la macro est le suivant :

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

Pour masquer toutes les lignes du document, nous définissons la variable indexRowMax sur le nombre maximal de lignes. Ensuite, nous l’utilisons dans une boucle for qui parcourt l’ensemble de la feuille de calcul et décachette chaque ligne en donnant la valeur false à la propriété SetHidden de la méthode.

Construction de la macro “Masquer les lignes de la sélection”.

Comme vous l’avez peut-être déjà deviné, la méthode SetHidden peut fonctionner dans les deux sens. Elle permet non seulement de démasquer les lignes, mais aussi de les masquer. Toutefois, si nous voulons masquer certaines lignes en particulier, la solution du for-loop n’est probablement pas la meilleure option. Nous suggérons plutôt de cibler la sélection sur le document et de l’itérer avec la fonction ForEach. Cela facilitera le masquage des lignes spécifiques de la sélection en fonction des valeurs des cellules.

Donc, d’abord, nous obtenons la feuille active et la sélection :

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

Ensuite, nous ajoutons la fonction ForEach et itérons dans chaque cellule de la sélection pour récupérer les valeurs :

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

Maintenant, nous ajoutons une instruction if qui récupère l’index de la ligne contenant une valeur inférieure à 35. Nous stockons cet index dans une variable et l’utilisons comme paramètre pour définir la ligne cachée :

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

Le code entier de la macro est le suivant :

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

Maintenant, exécutons notre macro et voyons comment elle fonctionne !

Nous espérons que cette petite macro rendra la gestion de vos données de tableur plus pratique. Elle n’est qu’un des nombreux exemples de ce qui peut être réalisé en mettant en œuvre nos méthodes API. Nos macros sont basées sur JavaScript, ce qui les rend extrêmement polyvalentes et faciles à adapter à vos besoins.

Nous vous encourageons à expérimenter et à créer vos propres macros. N’hésitez pas à poser des questions ou à partager vos idées avec nous. Nous sommes ouverts à la discussion et à la coopération. Nous vous souhaitons bonne chance dans vos projets d’exploration !