15 utili macro JavaScript da provare nel 2024

28 dicembre 2023By Alice

Mentre le macro di Microsoft Office si basano su VBA, ONLYOFFICE fa un ulteriore passo avanti con le macro basate su JavaScript, fornendo maggiore flessibilità. In questo post del blog, mostreremo alcune delle numerose macro di ONLYOFFICE che forniscono un’alternativa interessante a quelle tradizionali basate su VBA.

15 useful JavaScript macros to try in 2024

Che cos’è una macro JavaScript?

Le macro sono potenti strumenti che automatizzano i compiti. ONLYOFFICE utilizza JavaScript per la creazione di macro che utilizzabili in documenti, fogli di calcolo, presentazioni e nell’editing di OFORM. Queste macro JavaScript consentono agli utenti di automatizzare le attività, migliorare la funzionalità dei documenti e personalizzare le applicazioni ONLYOFFICE in base alle proprie esigenze.

Perché potresti aver bisogno di un’alternativa alle macro VBA?

Con la possibilità di creare macro JavaScript personalizzate, puoi ottenere automazione, interattività e perfetta integrazione con sistemi esterni:

  • Automazione: Le macro JavaScript consentono agli utenti di automatizzare attività come la formattazione, la manipolazione dei dati e i calcoli all’interno dei documenti.
  • Interattività: Le macro possono rendere i documenti più interattivi rispondendo alle azioni dell’utente e agli eventi.
  • Personalizzazione: Gli utenti possono personalizzare il comportamento delle applicazioni ONLYOFFICE in base alle loro esigenze specifiche.
  • Integrazione: Le macro JavaScript consentono l’integrazione con sistemi e servizi esterni, permettendo lo scambio di dati e la comunicazione tra ONLYOFFICE e altre piattaforme.

Le macro di ONLYOFFICE utilizzano JavaScript, che, oltre ad essere molto flessibile, rappresenta un linguaggio estremamente popolare e dalla vivace comunità. Sono disponibili numerosi tutorial che forniscono una guida completa su come gestire vari compiti con JavaScript. Inoltre, la nostra dettagliata documentazione fornisce spiegazioni chiare dei metodi che puoi utilizzare nelle tue macro JavaScript.

Confronto tra le macro VBA di Excel e le alternative JavaScript di ONLYOFFICE

Evidenziare i duplicati dalla selezione

Quella di seguito è una macro VBA di Excel:

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 differenza della controparte VBA, la nostra alternativa fornisce funzionalità più avanzate evidenziando i valori duplicati con colori univoci:

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

(no title)

Scoprire tutte le righe e le colonne

Questo script VBA scopre tutte le righe e le colonne sul foglio di lavoro:

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

E lo stesso può essere fatto con la macro di 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");
})();

(no title)

È inoltre possibile nascondere tutte le righe e le colonne impostando il parametro SetHidden su “true” in questa 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 hai bisogno di funzionalità più avanzate, abbiamo parlato dettagliatamente di una macro in un altro post del blog che ti consente di nascondere/mostrare righe e colonne specifiche.

Evidenziare i valori maggiori

Questa è una versione VBA che evidenzia il valore maggiore:

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

Lo stesso compito può essere eseguito con una macro JavaScript di ONLYOFFICE, utilizzando anche meno righe di codice:

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

(no title)

Nonostante abbia meno righe di codice, la nostra alternativa offre una migliore versatilità, ad esempio, modificando la condizione dell’istruzione “if”, possiamo:

  • Evidenziare i valori inferiori:
(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));
        }
    });
  • Evidenziare numeri negativi:
(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));
        }
    });
})();
  • Evidenziare le celle con un testo specifico:
(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));
        }
    });
 })();

Altre macro JavaScript da provare

  1. Una macro JavaScript per aggiungere indici a una selezione nei fogli di calcolo ONLYOFFICE
    A volte l’indicizzazione predefinita non basta. È qui che entra in gioco la nostra macro JavaScript che fa risparmiare tempo: indicizzerà in modo ordinato tutte le righe della selezione, rendendo il flusso di lavoro del foglio di calcolo molto più semplice.
  2. Una macro JavaScript per copiare fogli di calcolo
    Modificare i fogli di calcolo può essere complicato, soprattutto quando si gestiscono più fogli di calcolo con dati simili. Per facilitare questo processo, creiamo una macro JavaScript che copia i dati da un foglio di calcolo a un altro e che aiuta a gestire facilmente fogli di calcolo di grandi dimensioni.
  3. Una macro JavaScript per inserire più risultati della ricerca Baidu in un foglio elettronico
    La Macro di Baidu è uno strumento versatile progettato per aumentare l’efficienza nella gestione delle domande di ricerca singole e multiple. A prescindere dal tuo livello di esperienza, il suo design intuitivo e l’adattabilità lo rendono un’aggiunta vantaggiosa al tuo kit di strumenti.
  4. Una macro JavaScript per importare collegamenti ipertestuali in un foglio elettronico
    I collegamenti ipertestuali possono migliorare notevolmente l’estetica e la funzionalità dei fogli di calcolo, semplificando l’accesso alle risorse fondamentali all’interno dei documenti. Questa macro JavaScript importa i collegamenti ipertestuali estraendo i dati dei collegamenti da un altro foglio di calcolo.
  5. Una macro JavaScript per trovare i loghi aziendali
    Con i numerosi loghi in circolazione, di questi tempi trovare i riferimenti ai loghi può essere complicato, causando un po’ di confusione. Tuttavia, con le macro di ONLYOFFICE, puoi rendere automatico questo processo: questa macro JavaScript può recuperare contemporaneamente diversi logotipi da un’API esterna e inserirli nel foglio di calcolo.
  6. Una macro JavaScript per generare saluti personalizzati in base al gender  
    Rivolgersi correttamente alle persone è fondamentale nella comunicazione in quanto mostra rispetto, inclusività e professionalità. Questa macro JavaScript utilizza l’API Genderize.io per generare messaggi di saluto personalizzati appropriati.
  7. Una macro JavaScript per tracciare gli ordini su Shopify
    Al giorno d’oggi, l’e-commerce è diventato uno strumento prezioso per abbattere le barriere geografiche e facilitare il flusso costante di entrate. Pertanto, la gestione e la tracciabilità delle informazioni sugli ordini è una parte fondamentale di una strategia aziendale di successo. Questa macro JavaScript recupera i dati degli ordini da Shopify e li inserisce in un foglio di calcolo.
  8. Una macro JavaScript in una macro per importare dati CSV e TXT nel tuo foglio di calcolo
    Archiviare dati tabulari in formato CSV è molto pratico, il che rende questo tipo di file estremamente popolare. ONLYOFFICE Docs consente di importare file CSV e TXT locali. Questa macro JavaScript ti aiuterà a gestire l’importazione di file CSV e TXT remoti. 
  9. Una macro JavaScript per monitorare i dati sulla qualità dell’aria
    Le macro ONLYOFFICE rendono la nostra vita più facile, ci aiutano ad automatizzare le nostre attività di routine quotidiane e a lavorare con enormi quantità di dati. Questa macro JavaScript ti consente di visualizzare in tempo reale i dati attuali sulla qualità dell’aria.
  10. Una macro JavaScript per popolare le celle con i dati OpenAI
    La tecnologia AI ha fatto progressi significativi ed è diventata uno strumento prezioso in grado di automatizzare il nostro flusso di lavoro. Questa macro JavaScript popola un foglio di calcolo con i dati ottenuti da OpenAI. 
  11. Una macro JavaScript per analizzare i dati di un foglio elettronico
    Nonostante ora ChatGPT 4 offra funzionalità avanzate, alcuni utenti preferiscono ancora ChatGPT 3.5 a causa della possibilità di utilizzarlo gratuitamente. Tuttavia, su ChatGPT 3.5 non vi è la possibilità di caricare i file, il che impedisce agli utenti di analizzare i fogli dati. La macro JavaScript supera questa limitazione e consente di analizzare i fogli di calcolo.
  12. Una macro JavaScript per rimuovere i duplicati nella selezione
    Questa macro JavaScript rimuove i duplicati dalla selezione del foglio di calcolo, aiutandoti così a sbarazzarti delle voci duplicate, rendendo i tuoi dati puliti e precisi con una soluzione semplice ed efficiente che migliora l’esperienza complessiva del foglio di calcolo.

Le macro di ONLYOFFICE sono strumenti flessibili e potenti, in grado non solo di imitare la funzionalità delle macro VBA, ma anche di superarle.

Inoltre incoraggiamo tutti a sfruttare la nostra API ONLYOFFICE e creare le proprie affascinanti macro. Se hai domande o idee, non esitare a contattarci, siamo sempre pronti a discutere nuove opzioni e collaborare.