Importa collegamenti ipertestuali nel tuo foglio di calcolo con la macro ONLYOFFICE

21 settembre 2023By Elena

I collegamenti ipertestuali possono migliorare notevolmente l’estetica e la funzionalità dei tuoi fogli di calcolo, semplificando l’accesso a risorse cruciali all’interno dei tuoi documenti. In questo post ti guideremo passo dopo passo nella creazione di una macro che importi collegamenti ipertestuali estraendo i dati dei collegamenti da un altro foglio di calcolo.

Import hyperlinks into your spreadsheet with ONLYOFFICE macro

Costruzione della macro

Innanzitutto creiamo due variabili oWorksheetA e oWorksheetB, che rappresentano i fogli di calcolo nominati Foglio1 e Foglio2 nel documento. Inoltre creiamo due titoli e collegamenti di array vuoti che verranno utilizzati per archiviare i dati da Foglio1:

var oWorksheetA = Api.GetSheet("Sheet1");
var oWorksheetB = Api.GetSheet("Sheet2");
var rowIndex = 0;
var titles = [];
var links = [];

Un ciclo while scorre quindi le righe nel Foglio1 (fino a 10 righe in questo caso). All’interno del ciclo, recupera i valori dalle celle nelle colonne A e B, presupponendo che la colonna A contenga titoli e la colonna B contenga collegamenti. Questi valori vengono quindi archiviati negli array di titoli e collegamenti per un utilizzo successivo:

while (rowIndex < 10) {
    var titleCell = oWorksheetA.GetRangeByNumber(rowIndex, 0); // Assuming title is in column A
    var linkCell = oWorksheetA.GetRangeByNumber(rowIndex, 1); // Assuming link is in column B
    var title = titleCell.GetValue();
    var link = linkCell.GetValue();
    titles.push(title); // Store titles in an array
    links.push(link);   // Store links in an array
    rowIndex++; // Increment the row index for the next iteration
}

Quindi indirizziamo l’intervallo selezionato nel Foglio2 (oWorksheetB) e iteriamo attraverso ogni cella nell’intervallo selezionato utilizzando il metodo ForEach. Per ogni cella, recupera il valore della cella e controlla se quel valore corrisponde a uno dei titoli memorizzati nell’array dei titoli:

var rangeB = Api.GetSelection();
rangeB.ForEach(function (cell) {
    var cellValue = cell.GetValue();
    // Check if the cell value matches any of the titles from the array
    var index = titles.indexOf(cellValue);
});

Se viene trovata una corrispondenza, recupera il titolo e il collegamento corrispondenti dagli array di titoli e collegamenti. Ottiene anche l’indirizzo della cella corrente nel Foglio2 utilizzando cell.GetAddress. Infine, imposta un collegamento ipertestuale nel Foglio2 utilizzando il titolo e il collegamento recuperati:

if (index !== -1) {
        var title = titles[index];
        var link = links[index];
        var address = cell.GetAddress(true, true, "xlA1", false);
        // Set the hyperlink in oWorksheetB
        oWorksheetB.SetHyperlink(address, link, "Api ONLYOFFICE", title);
    }

L’intera macro è la seguente:

var oWorksheetA = Api.GetSheet("Sheet1");
var oWorksheetB = Api.GetSheet("Sheet2");
var rowIndex = 0;
var titles = [];
var links = [];
while (rowIndex < 10) {
    var titleCell = oWorksheetA.GetRangeByNumber(rowIndex, 0); // Assuming title is in column A
    var linkCell = oWorksheetA.GetRangeByNumber(rowIndex, 1); // Assuming link is in column B
    var title = titleCell.GetValue();
    var link = linkCell.GetValue();
    titles.push(title); // Store titles in an array
    links.push(link);   // Store links in an array
    rowIndex++; // Increment the row index for the next iteration
}
var rangeB = Api.GetSelection();
rangeB.ForEach(function (cell) {
    var cellValue = cell.GetValue();
    // Check if the cell value matches any of the titles from the array
    var index = titles.indexOf(cellValue);
    if (index !== -1) {
        var title = titles[index];
        var link = links[index];
        var address = cell.GetAddress(true, true, "xlA1", false);
        // Set the hyperlink in oWorksheetB
        oWorksheetB.SetHyperlink(address, link, "Your Description", title);
    }
})

Eseguiamo la nostra macro e vediamo come funziona!

Ci auguriamo sinceramente che questa macro si riveli una risorsa preziosa nel tuo kit di strumenti. Adottando le macro di ONLYOFFICE, potrai potenziarti con una maggiore produttività e soluzioni efficienti e automatizzate.

Mentre ti immergi nella creazione di macro, non perdere le opportunità offerte dall’API di ONLYOFFICE. Se hai domande o idee innovative, ti invitiamo a condividerle con noi, sia attraverso commenti che tramite comunicazione diretta. Siamo lieti di accettare il tuo contributo e la possibilità di collaborare con te. Buona fortuna!

Crea il tuo account ONLYOFFICE gratuito

Visualizza, modifica e collabora su documenti, fogli, diapositive, moduli e file PDF online.