Cómo crear una macro de ONLYOFFICE para contar cuántas veces aparece una palabra en el documento

23 mayo 2024By Sergey

Tanto si estás comprobando contenido, buscando palabras importantes o simplemente intentando comprender mejor tus datos, saber con qué frecuencia aparece una palabra es bastante útil. En esta entrada del blog, te mostraremos cómo crear una macro que cuente cuántas veces aparece una palabra específica en tu documento.

Cómo crear una macro de ONLYOFFICE para contar cuántas veces aparece una palabra en el documento

Creación de la macro

(function () {
  const oDocument = Api.GetDocument();
  const oRange = oDocument.GetRangeBySelect();
  const targetWord = "apple";

Para empezar, obtenemos el documento necesario en la variable oDocument, y la selección de texto en oRange. La variable targetWord contiene la palabra que queremos encontrar. Esto debe ser reemplazado por la palabra que quieres buscar en tu documento.

    const rawText = oRange.GetText();
    var wordRegex = new RegExp("\\b" + targetWord + "\\b", "gi");
    var matches = rawText.match(wordRegex);

A continuación, el texto de la selección se extrae en rawText. Una expresión regular busca la palabra especificada en todo el documento. Esta expresión regular se almacena en wordRegex. A continuación, utilizando el método match y wordRegex, almacenamos todos los elementos del targetWord en la matriz matches.

    let count = 0;
    for (let i = 0; i < matches.length; i++) {
      count++;
    }
    const wordInstances = count;

La longitud de la targetWord se calcula y se almacena la variable wordInstances.

    return wordInstances;
  }

La función se concluye devolviendo la variable wordInstances al final de su ámbito.

  const ans = addCommentToWord();
  oRange.AddComment(
    `The word ${targetWord} is repeated ${ans} times throughout this text.`
  );

Por último, almacenamos el valor devuelto por la función en ans, acompañado de un comentario que detalla el número total la palabra repetida dentro de la selección.

El código completo de la macro

Aquí está el código completo 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.`
  );

})();

¡Vamos a ver nuestra macro en acción!

Creemos que esta macro hará que tu análisis de documentos sea pan comido al contar sin esfuerzo la frecuencia de uso de palabras, impulsando tu flujo de trabajo general, simplificando y refinando tus evaluaciones de contenido.

No te pierdas la oportunidad de aprovechar el poder de la API de ONLYOFFICE. Nuestra amplia biblioteca de métodos API es la clave para transformar tus ideas en realidad. Si tienes alguna pregunta o concepto innovador, te animamos a que lo compartas con nosotros. Tu aportación es muy valorada, y nos entusiasma la posibilidad de colaborar contigo. ¡Mucha suerte en tus esfuerzos exploratorios!