Come costruire una macro ONLYOFFICE per contare le occorrenze delle parole nei documenti
Che tu stia analizzando dei contenuti, cercando le parole chiavi o semplicemente studiando dei dati, sapere quanto spesso appare una parola in un dato documento è molto utile. In questo post del blog, ti mostreremo come creare una macro in grado di contare quante volte una parola specifica viene visualizzata nel tuo documento.
Creazione della macro
(function () {
const oDocument = Api.GetDocument();
const oRange = oDocument.GetRangeBySelect();
const targetWord = "apple";
Per cominciare, otteniamo il documento di lavoro nella variabile oDocument e la selezione del testo in oRange. La variabile targetWord contiene la parola che si desidera cercare, e deve essere sostituita con quella che si desidera cercare nel documento.
const rawText = oRange.GetText();
var wordRegex = new RegExp("\\b" + targetWord + "\\b", "gi");
var matches = rawText.match(wordRegex);
Dopodiché, il testo nella selezione viene estratto in rawText. Un’espressione regolare verifica la presenza della parola specificata in tutto il documento. Questa espressione regolare è memorizzata in wordRegex. Poi, utilizzando il metodo match e wordRegex, memorizziamo tutte le istanze di targetWord nell’array di matches.
let count = 0;
for (let i = 0; i < matches.length; i++) {
count++;
}
const wordInstances = count;
La lunghezza della targetWord è calcolata e memorizzata nella variabile wordInstances.
return wordInstances;
}
La funzione si conclude restituendo la variabile wordInstances alla fine del suo campo d’applicazione.
const ans = addCommentToWord();
oRange.AddComment(
`The word ${targetWord} is repeated ${ans} times throughout this text.`
);
Infine, memorizziamo il valore restituito della funzione in ans, accompagnato da un commento che descrive in dettaglio le istanze totali della parola ripetuta all’interno della selezione.
Il codice completo della macro
Ecco l’intero codice della macro:
(function () {
const oDocument = Api.GetDocument();
const oRange = oDocument.GetRangeBySelect();
const targetWord = "apple";
function addCommentToWord() {
const rawText = oRange.GetText();
// Specify the target word and the length of the word
// Find all occurrences of the target word in the document
var wordRegex = new RegExp("\\b" + targetWord + "\\b", "gi");
var matches = rawText.match(wordRegex);
let count = 0;
for (let i = 0; i < matches.length; i++) {
count++;
}
const wordInstances = count;
return wordInstances;
}
// `The word `${targetword} has been repeated ${wordInstances} times.`
const ans = addCommentToWord();
oRange.AddComment(
`The word ${targetWord} is repeated ${ans} times throughout this text.`
);
})();
Dai un’occhiata alla nostra macro in azione!
Riteniamo che questa macro renderà l’analisi dei documenti un gioco da ragazzi, contando senza sforzo le occorrenze delle parole, aumentando il flusso di lavoro complessivo, semplificando e perfezionando le valutazioni dei contenuti.
Non perdere l’occasione di sfruttare la potenza dell’API di ONLYOFFICE. La nostra vasta libreria di metodi API è la chiave per trasformare le tue idee in realtà. Se hai domande o idee innovative, ti invitiamo a condividerle con noi. Il tuo contributo è molto apprezzato e siamo entusiasti della possibilità di collaborare con te. In bocca al lupo e buon lavoro!