Comment construire une macro ONLYOFFICE pour compter les occurrences de mots dans les documents
Qu’il s’agisse d’auditer du contenu, de rechercher des mots importants ou simplement d’essayer de mieux comprendre vos données, il est très pratique de savoir combien de fois un mot apparaît. Dans cet article de blog, nous allons vous montrer comment créer une macro qui compte le nombre de fois qu’un mot spécifique apparaît dans votre document.
Construction de la macro
(function () {
const oDocument = Api.GetDocument();
const oRange = oDocument.GetRangeBySelect();
const targetWord = "apple";
Pour commencer, nous obtenons le document de travail dans la variable oDocument et la sélection de texte dans oRange. La variable targetWord contient le mot que vous souhaitez rechercher. Elle doit être remplacée par le mot que vous souhaitez rechercher dans votre document.
const rawText = oRange.GetText();
var wordRegex = new RegExp("\\b" + targetWord + "\\b", "gi");
var matches = rawText.match(wordRegex);
Ensuite, le texte de la sélection est extrait dans rawText. Une expression régulière vérifie la présence du mot spécifié dans tout le document. Cette expression régulière est stockée dans wordRegex. Ensuite, en utilisant la méthode match et wordRegex, nous stockons toutes les instances de targetWord dans le tableau matches.
let count = 0;
for (let i = 0; i < matches.length; i++) {
count++;
}
const wordInstances = count;
La longueur de targetWord est calculée et stockée dans la variable wordInstances.
return wordInstances;
}
La fonction se termine en renvoyant la variable wordInstances à la fin de son champ d’application.
const ans = addCommentToWord();
oRange.AddComment(
`The word ${targetWord} is repeated ${ans} times throughout this text.`
);
Enfin, nous stockons la valeur retournée par la fonction dans ans, accompagnée d’un commentaire détaillant le nombre total d’occurrences du mot répété dans la sélection.
Code complet de la macro
Voici le code complet de la 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.`
);
})();
Voyons notre macro en action !
Nous pensons que cette macro facilitera l’analyse de vos documents en calculant sans effort les occurrences de mots, en améliorant votre flux de travail global, en simplifiant et en affinant vos évaluations de contenu.
Ne manquez pas l’occasion d’exploiter la puissance de l’API ONLYOFFICE. Notre vaste bibliothèque de méthodes API est votre clé pour transformer vos idées en réalité. Si vous avez des questions ou des concepts innovants, nous vous encourageons à les partager avec nous. Votre contribution est très appréciée et nous sommes ravis de pouvoir collaborer avec vous. Nous vous souhaitons bonne chance dans vos projets exploratoires !