Las 15 macros JavaScript útiles para probar en 2024

27 diciembre 2023By Sergey

Mientras Microsoft Office tiene macros basadas en VBA, ONLYOFFICE va un paso más allá con macros basadas en JavaScript, proporcionando más flexibilidad. En este artículo mostraremos algunas de las numerosas macros de ONLYOFFICE que ofrecen una alternativa atractiva a las macros tradicionales basadas en VBA.

Las 15 macros JavaScript útiles para probar en 2024

¿Qué es una macro JavaScript?

Las macros son herramientas poderosas que automatizan tareas. ONLYOFFICE utiliza JavaScript para crear macros que cubren la edición de documentos, hojas de cálculo, presentaciones y archivos OFORM. Estas macros JavaScript permiten a los usuarios automatizar tareas, mejorar la funcionalidad de documentos y personalizar las aplicaciones de ONLYOFFICE según sus necesidades.

¿Por qué necesitas una alternativa a las macros VBA?

Con la posibilidad de escribir macros JavaScript personalizadas, puedes conseguir automatización, interactividad e integración perfecta con sistemas externos:

  • Automatización: Las macros JavaScript permiten a los usuarios automatizar tareas como el cambio de formato, la manipulación de datos y los cálculos dentro de los documentos.
  • Interactividad: Las macros pueden hacer que los documentos sean más interactivos al responder a acciones o eventos del usuario.
  • Personalización: Los usuarios pueden personalizar el comportamiento de las aplicaciones de ONLYOFFICE según sus necesidades específicas.
  • Integración: Las macros JavaScript permiten la integración con sistemas y servicios externos, permitiendo el intercambio de datos y la comunicación entre ONLYOFFICE y otras plataformas.

Dado que las macros de ONLYOFFICE utilizan JavaScript, y más allá de su flexibilidad, es un lenguaje extremadamente popular con una comunidad vibrante. Hay una abundancia de tutoriales disponibles, proporcionando una guía completa sobre cómo abordar diversas tareas con JavaScript. Además, nuestra documentación detallada proporciona explicaciones claras de los métodos que puedes utilizar en tus macros JavaScript.

Comparación de macros VBA de Excel con alternativas JavaScript de ONLYOFFICE

Resaltar duplicados de la selección

La macro VBA de Excel es la siguiente:

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

A diferencia de la macro VBA, nuestra alternativa proporciona una funcionalidad más avanzada al resaltar los valores duplicados con colores únicos:

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

Las 15 macros JavaScript útiles para probar en 2024

Desocultar todas las filas y columnas

Este script VBA desoculta todas las filas y columnas de la hoja de cálculo:

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

Y lo mismo puede hacerse con la 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");
})();

Las 15 macros JavaScript útiles para probar en 2024

También puedes ocultar todas las filas y columnas estableciendo el parámetro SetHidden en true en esta 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");
})();

Si necesitas funciones más avanzadas, en otra entrada del blog hemos detallado una macro que te permite ocultar/desocultar filas y columnas específicas.

Resaltar los valores mayores

Esta es una versión VBA que resalta el valor mayor:

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

La misma tarea puede abordarse con una macro JavaScript de ONLYOFFICE, incluso utilizando menos líneas 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));
        }
    });    
})();

Las 15 macros JavaScript útiles para probar en 2024

A pesar de tener menos líneas de código, nuestra alternativa ofrece mayor versatilidad. Por ejemplo, cambiando la condición de la sentencia if, podemos:

  • Resaltar valores inferiores:
(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));
        }
    });
  • Resaltar 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));
        }
    });
})();
  • Resaltar celdas con 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));
        }
    });
 })();

Más macros JavaScript útiles

  1. Una macro JavaScript para añadir índices a una selección en las hojas de cálculo
    A veces la indexación predeterminada no es suficiente. Aquí es donde entra nuestra macro JavaScript. Indexará todas las filas de tu selección, simplificando tu flujo de trabajo en la hoja de cálculo.
  2. Una macro JavaScript para copiar hojas de cálculo
    La edición de hojas de cálculo puede ser complicada, especialmente cuando se manejan varias hojas de cálculo con datos similares. Para facilitar este proceso, vamos a crear una macro JavaScript que copie datos de una hoja de cálculo a otra y te ayude a manejar fácilmente hojas de cálculo de gran tamaño.
  3. Una macro JavaScript para insertar múltiples resultados de búsqueda de Baidu en una hoja de cálculo
    La macro de Baidu es una herramienta versátil diseñada para aumentar la eficiencia en la gestión de consultas de búsqueda únicas y múltiples. Independientemente de tu nivel de experiencia, su diseño fácil de usar y su adaptabilidad la convierten en una adición beneficiosa a tu conjunto de herramientas.
  4. Una macro JavaScript para importar hiperenlaces en una hoja de cálculo
    Los hiperenlaces pueden mejorar enormemente la estética y la funcionalidad de tus hojas de cálculo, facilitando el acceso a recursos cruciales dentro de tus documentos. Esta macro JavaScript importa hiperenlaces extrayendo los datos de enlace de otra hoja de cálculo.
  5. Una macro JavaScript para encontrar logotipos de empresas
    Dada la gran cantidad de logotipos que existen, descubrir referencias a logotipos puede ser un poco complicado hoy en día, pudiendo llevar a confusión. Sin embargo, con las macros de ONLYOFFICE, puedes hacer este proceso automático. Esta macro JavaScriptcan puede recuperar simultáneamente varios logotipos de una API externa e insertarlos en tu hoja de cálculo.
  6. Una macro JavaScript para generar saludos personalizados en función del género
    Dirigirse a las personas correctamente es crucial en la comunicación, ya que muestra respeto, inclusividad y profesionalidad. Esta macro JavaScript utiliza la API Genderize.io para generar saludos personalizados adecuados.
  7. Una macro JavaScript para realizar el seguimiento de pedidos en Shopify
    En los tiempos que corren, el comercio electrónico se ha convertido en una valiosa herramienta para romper las barreras geográficas y facilitar el flujo constante de ingresos. Por lo tanto, la gestión y el seguimiento de la información de los pedidos es una parte vital de una estrategia de negocio exitosa. Esta macro JavaScript recupera los datos de los pedidos desde Shopify y los inserta en una hoja de cálculo.
  8. Una macro JavaScript para importar datos CSV y TXT a tu hoja de cálculo
    Almacenar datos tabulares en formato CSV es muy práctico de muchas maneras, lo que hace este tipo de archivo extremadamente popular. ONLYOFFICE Docs permite importar archivos locales CSV y TXT. Esta macro JavaScript ayudará a importar archivos CSV y TXT remotos.
  9. Una macro JavaScript para controlar los datos sobre la calidad del aire
    Las macros de ONLYOFFICE nos hacen la vida más fácil. Nos ayudan a automatizar nuestras tareas rutinarias diarias y a operar con grandes cantidades de datos. Esta macro JavaScript permite visualizar en directo los datos actuales sobre la calidad del aire.
  10. Una macro JavaScript para rellenar celdas con datos de OpenAI
    La tecnología de IA ha avanzado mucho y se ha convertido en una valiosa herramienta que puede automatizar nuestro flujo de trabajo. Esta macro de JavaScript rellena una hoja de cálculo con datos obtenidos de OpenAI.
  11. Una macro JavaScript para analizar datos de una hoja de cálculo
    Aunque ChatGPT 4 ofrece ahora funciones mejoradas, algunos usuarios siguen prefiriendo ChatGPT 3.5 debido a su menor coste simbólico. Sin embargo, ChatGPT 3.5 carece de funciones de carga de archivos, lo que impide a los usuarios analizar hojas de datos. Esta macro JavaScript supera esta limitación, permitiendo analizar hojas de cálculo.
  12. Una macro JavaScript para eliminar duplicados en la selección
    Esta macro JavaScript elimina duplicados de la selección de hojas de cálculo. Te ayuda a deshacerte de las entradas duplicadas, haciendo que tus datos sean limpios y precisos con una solución sencilla y eficaz que mejora tu experiencia general con las hojas de cálculo.

Las macros de ONLYOFFICE son herramientas flexibles y potentes, capaces no solamente de imitar la funcionalidad de las macros VBA, sino también de superarlas.

También invitamos a todos a aprovechar nuestra API de ONLYOFFICE y crear sus propias macros fascinantes. Si tienes alguna pregunta o idea, no dudes en ponerte en contacto con nosotros. Estamos abiertos a la discusión y colaboración.