15 macros JavaScript úteis para experimentar em 2024

27 dezembro 2023By Klaibson

Embora o Microsoft Office tenha macros baseadas em VBA, o ONLYOFFICE vai um passo além com macros baseadas em JavaScript, proporcionando mais flexibilidade. Nesta postagem do blog, mostraremos algumas das inúmeras macros do ONLYOFFICE que fornecem uma alternativa atraente às tradicionais baseadas em VBA.

15 macros JavaScript úteis para experimentar em 2024

O que é uma macro JavaScript?

Macros são ferramentas poderosas que automatizam tarefas. ONLYOFFICE emprega JavaScript para criar macros que abrangem documentos, planilhas, apresentações e editando o OFORM . Essas macros JavaScript permitem aos usuários automatizar tarefas, aprimorar a funcionalidade de documentos e personalizar aplicativos ONLYOFFICE de acordo com suas necessidades.

Por que você pode precisar de uma alternativa às macros VBA?

Com a capacidade de escrever macros JavaScript personalizadas, você pode obter automação, interatividade e integração perfeita com sistemas externos:

  • Automação: macros JavaScript permitem que os usuários automatizem tarefas como formatação, manipulação de dados e cálculos em documentos.
  • Interatividade: As macros podem tornar os documentos mais interativos, respondendo às ações ou eventos do usuário.
  • Personalização: Os usuários podem personalizar o comportamento dos aplicativos ONLYOFFICE de acordo com suas necessidades específicas.
  • Integração: Macros JavaScript permitem a integração com sistemas e serviços externos, possibilitando a troca de dados e a comunicação entre o ONLYOFFICE e outras plataformas.

Dado que as macros do ONLYOFFICE utilizam JavaScript, e além de sua flexibilidade, é uma linguagem extremamente popular com uma comunidade vibrante. Há uma abundância de tutoriais disponíveis, fornecendo orientações abrangentes sobre como realizar várias tarefas com JavaScript. Além disso, nossa documentação detalhada fornece explicações claras sobre os métodos que você pode usar em suas macros JavaScript.

Comparando macros Excel VBA com alternativas JavaScript do ONLYOFFICE

Destacar duplicatas da seleção

A macro VBA Excel é a seguinte:

Sub HighlightDuplicateValues()
Dim myRange As Range
Dim myCell As Range
Set myRange = Selection
For Each myCell In myRange
If WorksheetFunction.CountIf(myRange, myCell.Value) > 1 Then
myCell.Interior.ColorIndex = 36
End If
Next myCell
End Sub

Ao contrário da contraparte do VBA, nossa alternativa oferece funcionalidades mais avançadas, destacando valores duplicados com cores exclusivas:

(function () 
{
    // Background color of cells with non-repeating values
    var whiteFill = Api.CreateColorFromRGB(255, 255, 255);
    // The current index of the color range
    var uniqueColorIndex = 0;
    // Color range to highlight duplicate values
    var uniqueColors = [Api.CreateColorFromRGB(255, 255, 0),
        Api.CreateColorFromRGB(204, 204, 255),
        Api.CreateColorFromRGB(0, 255, 0),
        Api.CreateColorFromRGB(0, 128, 128),
        Api.CreateColorFromRGB(192, 192, 192),
        Api.CreateColorFromRGB(255, 204, 0)];
    // Function to get color for duplicates
    function getColor() {
        // If you have chosen all the unique colors, then let's go from the beginning
        if (uniqueColorIndex === uniqueColors.length) {
            uniqueColorIndex = 0;
        }
        return uniqueColors[uniqueColorIndex++];
    }
    // Getting an active sheet
    var activeSheet = Api.ActiveSheet;
    // Getting selection on the active sheet
    var selection = activeSheet.Selection;
    // Map of values in cells with the duplicates number
    var mapValues = {};
    // All cells range
    var arrRanges = [];
    // Going through the selection
    selection.ForEach(function (range) {
        // Getting value from cell
        var value = range.GetValue();
        if (!mapValues.hasOwnProperty(value)) {
            mapValues[value] = 0;
        }
        mapValues[value] += 1;
        arrRanges.push(range);
    });
    var value;
    var mapColors = {};
    // We go through all the cells of the selection and setting the highlighting if this value is repeated more than 1 time
    for (var i = 0; i < arrRanges.length; ++i) {
        value = arrRanges[i].GetValue();
        if (mapValues[value] > 1) {
            if (!mapColors.hasOwnProperty(value)) {
                mapColors[value] = getColor();
            }
            arrRanges[i].SetFillColor(mapColors[value]);
        } else {
            arrRanges[i].SetFillColor(whiteFill);
        }
    }
})();

15 macros JavaScript úteis para experimentar em 2024

Mostrar todas as linhas e colunas

Este script VBA exibe todas as linhas e colunas da planilha:

Sub UnhideRowsColumns()
Columns.EntireColumn.Hidden = False
Rows.EntireRow.Hidden = False
End Sub

E o mesmo pode ser feito com a macro JavaScript:

(function()
{
    var activeSheet = Api.ActiveSheet;
    var indexRowMax = 1048576;
    var n = 1;
    for (let i = 0; i < indexRowMax; i++) {
        activeSheet.GetRows(n).SetHidden(false);
        n++;
    }
    var newRange = activeSheet.GetRange("A1");
    newRange.SetValue("All the rows and columns are unhidden now");
})();

15 macros JavaScript úteis para experimentar em 2024

Você também pode ocultar todas as linhas e colunas definindo o parâmetro SetHidden como true nesta macro:

(function()
{
    var activeSheet = Api.ActiveSheet;
    var indexRowMax = 1048576;
    var n = 1;
    for (let i = 0; i < indexRowMax; i++) {
        activeSheet.GetRows(n).SetHidden(true);
        n++;
    }
    var newRange = activeSheet.GetRange("A1");
    newRange.SetValue("All the rows and columns are hidden now");
})();

Se você precisar de recursos mais avançados, detalhamos uma macro em outra postagem no blog que permite ocultar/exibir linhas e colunas específicas.

Destaque maior que valores

Aqui está uma versão VBA que destaca mais que valor:

Sub HighlightGreaterThanValues()
Dim i As Integer
i = InputBox("Enter Greater Than Value", "Enter Value")
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, _
Operator:=xlGreater, Formula1:=i
Selection.FormatConditions(Selection.FormatConditions.Count).S
tFirstPriority
With Selection.FormatConditions(1)
.Font.Color = RGB(0, 0, 0)
.Interior.Color = RGB(31, 218, 154)
End With
End Sub

A mesma tarefa pode ser realizada com uma macro JavaScript do ONLYOFFICE, mesmo usando menos linhas de código:

(function () 
{
    var activeSheet = Api.ActiveSheet;
    var selection = activeSheet.Selection;
    selection.ForEach(function (range) {
        var value = range.GetValue();
        if (value > 5) {
            range.SetFillColor(Api.CreateColorFromRGB(255, 255, 0));
        }
    });    
})();

15 macros JavaScript úteis para experimentar em 2024

Apesar de ter menos linhas de código, nossa alternativa oferece maior versatilidade. Por exemplo, alterando a condição da instrução if, podemos:

  • Destaque abaixo dos valores:
(function () 
{
    var activeSheet = Api.ActiveSheet;
    var selection = activeSheet.Selection;
    selection.ForEach(function (range) {
        var value = range.GetValue();
        if (value < 5) {
            range.SetFillColor(Api.CreateColorFromRGB(255, 255, 0));
        }
    });
  • Destaque números negativos:
(function () 
{
    var activeSheet = Api.ActiveSheet;
    var selection = activeSheet.Selection;
    selection.ForEach(function (range) {
        var value = range.GetValue();
        if (value < 0) {
            range.SetFillColor(Api.CreateColorFromRGB(255, 255, 0));
        }
    });
})();
  • Destaque células com texto específico:
(function () 
{
    var activeSheet = Api.ActiveSheet;
    var selection = activeSheet.Selection;
    selection.ForEach(function (range) {
        var value = range.GetValue();
        if (value == 'text') {
            range.SetFillColor(Api.CreateColorFromRGB(255, 255, 0));
        }
    });
 })();

Macros JavaScript mais úteis para experimentar

  1. Uma macro JavaScript para adicionar índices a uma seleção em planilhas do ONLYOFFICE
    Às vezes, a indexação padrão simplesmente não funciona. É aí que nossa economia de tempo e  a macro em JavaScript entra . Ele indexará perfeitamente todas as linhas da sua seleção, tornando o fluxo de trabalho da planilha muito mais simples.
  2. A JavaScript macro to copy spreadsheets
    Editar planilhas pode ser complicado, especialmente ao lidar com diversas planilhas com dados semelhantes. Para facilitar esse processo, vamos criar uma macro que copia dados de uma planilha para outra e ajuda você a lidar facilmente com planilhas grandes.
  3. Uma macro JavaScript para inserir vários resultados de Baidu Search em uma planilha
    A Macro Baidu é uma ferramenta versátil projetada para aumentar a eficiência no gerenciamento de consultas de pesquisa únicas e múltiplas. Independentemente do seu nível de experiência, seu design fácil de usar e adaptabilidade o tornam uma adição benéfica ao seu kit de ferramentas.
  4. Uma macro JavaScript para importar hiperlinks para uma planilha
    Os hiperlinks podem melhorar muito a estética e a funcionalidade de suas planilhas, facilitando o acesso a recursos cruciais em seus documentos. Esta macro JavaScript importa hiperlinks extraindo dados de links de outra planilha.
  5. Uma macro JavaScript para encontrar logotipos de empresas
    Dados os muitos logotipos que existem, descobrir referências de logotipos pode ser um pouco complicado hoje em dia, podendo levar à confusão. Ainda assim, com macros ONLYOFFICE, você pode automatizar esse processo. Esta macro macro JavaScript pode recupere simultaneamente vários logotipos de uma API externa e insira-os em sua planilha.
  6. Uma macro JavaScript para gerar saudações personalizadas baseadas em gênero
    Dirigir-se às pessoas corretamente é crucial na comunicação, pois mostra respeito, inclusão e profissionalismo. Esta macro JavaScript utiliza a API Genderize.io para gerar saudações personalizadas adequadas.
  7. Uma macro a macro JavaScript para rastrear pedidos no Shopify
    Nos dias de hoje, o comércio eletrónico tornou-se uma ferramenta valiosa para quebrar barreiras geográficas e facilitar o fluxo constante de rendimentos. Portanto, gerenciar e rastrear informações de pedidos é uma parte vital de uma estratégia de negócios bem-sucedida. Esta macro JavaScript recupera dados de pedidos do Shopify e os insere em uma planilha.
  8. Uma macro JavaScript para macro para importar dados CSV e TXT para sua planilha
    Armazenar dados tabulares em formato CSV é muito prático em vários aspectos, o que torna esse tipo de arquivo extremamente popular. ONLYOFFICE Docs permite importar arquivos CSV e TXT locais. Esta macro JavaScript ajuda se você lida com a importação de arquivos CSV e TXT remotos.
  9. Uma macro JavaScript para monitorar dados de qualidade do ar
    As macros do ONLYOFFICE tornam nossas vidas mais fáceis. Eles nos ajudam a automatizar nossas tarefas rotineiras diárias e a operar com grandes quantidades de dados. Esta macro JavaScript permite que você  exiba os dados atuais da qualidade do ar ao vivo.
  10. Uma macro JavaScript para preencher células com dados OpenAI
    A tecnologia de IA fez avanços significativos e se tornou uma ferramenta valiosa que pode automatizar nosso fluxo de trabalho. Esta macro JavaScript preenche uma planilha com dados obtidos do OpenAI. 
  11. Uma macro JavaScript para analisar dados de planilhas
    Embora o ChatGPT 4 agora forneça recursos aprimorados, alguns usuários ainda preferem o ChatGPT 3.5 devido ao seu menor custo de token. No entanto, o ChatGPT 3.5 não possui recursos de upload de arquivos, impedindo os usuários de analisar planilhas de dados. Esta macro JavaScript supera essa limitação, permitindo analisar planilhas.
  12. Uma macro JavaScript para remover duplicatas na seleção
    Esta macro JavaScript remove duplicatas da seleção da planilha. Ele ajuda você a se livrar de entradas duplicadas, tornando seus dados limpos e precisos com uma solução simples e eficiente que aprimora sua experiência geral com planilhas.

As macros do ONLYOFFICE são ferramentas flexíveis e poderosas, capazes não apenas de imitar a funcionalidade das macros VBA, mas também de superá-las.

Também incentivamos todos a alavancar nosso API ONLYOFFICE e crie suas próprias macros fascinantes. Se você tiver alguma dúvida ou ideia, não hesite em entrar em contato conosco. Estamos abertos à discussão e colaboração.