Ocultar linhas específicas na seleção usando a macro do ONLYOFFICE
Ao trabalhar com uma planilha, às vezes queremos ocultar linhas específicas para tornar a manipulação de grandes blocos de dados mais conveniente. Esta postagem de blog mostrará como facilitar esse recurso com uma macro do ONLYOFFICE pequena, mas peculiar.
Para materializar essa ideia, implementaremos o método SetHidden. Já foi utilizado em outra macro do ONLYOFFICE que permite reexibir todas as linhas e colunas da planilha.
O código da macro é o seguinte:
var activeSheet = Api.ActiveSheet;
var indexRowMax = 1048576;
var n = 1;
for (let i = 0; i < indexRowMax; i++) {
activeSheet.GetRows(n).SetHidden(false);
n++;
}
Para reexibir todas as linhas do documento, definimos a variável indexRowMax para a quantidade máxima de linhas. Em seguida, nós o utilizamos em um loop for que itera por toda a planilha e exibe cada linha alterando a propriedade do método SetHidden para false.
Construindo a macro “Ocultar linhas na seleção”
Como você já deve ter adivinhado, o método SetHidden pode funcionar nos dois sentidos. Ele permite não apenas reexibir as linhas, mas também escondê-las. No entanto, se quisermos ocultar algumas linhas específicas, a solução for-loop pode não ser a melhor opção. Em vez disso, sugerimos segmentar a seleção no documento e iterar com a função ForEach. Isso facilitará ocultar as linhas específicas na seleção, dependendo dos valores das células.
Então, primeiro, obtemos a planilha ativa e a seleção:
var activeSheet = Api.ActiveSheet;
var selection = activeSheet.Selection;
Em seguida, adicionamos a função ForEach e iteramos por cada célula na seleção para buscar os valores:
selection.ForEach(function (range) {
var value = range.GetValue();
}
Agora adicionamos uma instrução if que obterá o índice da linha que contém um valor menor que 35. Armazenamos esse índice em uma variável e a usamos como parâmetro para definir a linha oculta:
selection.ForEach(function (range) {
var value = range.GetValue();
if (value < "35") {
var row = range.GetRow();
range.GetRows(row[range]).SetHidden(true);
}
Todo o código da macro é o seguinte:
(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);
}
});
})();
Agora vamos executar nossa macro e ver como ela funciona!
Esperamos que essa pequena macro torne o gerenciamento dos dados da sua planilha mais conveniente. É apenas um dos muitos exemplos do que pode ser alcançado implementando nossos métodos de API. Nossas macros são baseadas em JavaScript, o que as torna extremamente versáteis e fáceis de adaptar às suas necessidades.
Nós encorajamos você a experimentar e fazer suas próprias macros. Sinta-se à vontade para fazer perguntas ou compartilhar suas ideias conosco. Estamos abertos à discussão e cooperação. Boa sorte em seus empreendimentos exploratórios!