Importa collegamenti ipertestuali nel tuo foglio di calcolo con la macro ONLYOFFICE
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.
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.