Como construir uma macro ONLYOFFICE para registrar ocorrências de palavras em documentos

24 maio 2024By Klaibson

Esteja você auditando conteúdo, analisando palavras importantes ou apenas tentando entender melhor seus dados, saber com que frequência uma palavra aparece é muito útil. Nesta postagem do blog, mostraremos como criar uma macro que conta quantas vezes uma palavra específica aparece no seu documento.

Como construir uma macro ONLYOFFICE para registrar ocorrências de palavras em documentos

Construindo a macro

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

Para começar, obtemos o documento de trabalho na variável oDocument e a seleção de texto em oRange. A variável targetWord contém a palavra que você deseja pesquisar. Deve ser substituído pela palavra que você deseja pesquisar em seu documento.

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

A seguir, o texto da seleção é extraído para rawText. Uma expressão regular verifica a palavra especificada em todo o documento. Esta expressão regular é armazenada em wordRegex. Então, usando o método match e wordRegex, armazenamos todas as instâncias do targetWord no array matches.

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

O comprimento do targetWord é calculado e armazenado na variável wordInstances.

    return wordInstances;
  }

A função termina retornando a variável wordInstances no final de seu escopo.

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

Por fim, armazenamos o valor de retorno da função em ans, acompanhado de um comentário detalhando o total de instâncias da palavra repetida na seleção.

O código de macro completo

Aqui está todo o código da 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 ver nossa macro em ação!

Acreditamos que esta macro facilitará a análise de seus documentos, registrando facilmente ocorrências de palavras, impulsionando seu fluxo de trabalho geral, simplificando e refinando suas avaliações de conteúdo.

Não perca a chance de aproveitar o poder da API ONLYOFFICE. Nossa extensa biblioteca de métodos API é a chave para transformar suas ideias em realidade. Se você tiver alguma dúvida ou conceitos inovadores, encorajamos você a compartilhar conosco. Sua contribuição é altamente valorizada e estamos entusiasmados com a possibilidade de colaborar com você. Boa sorte em seus empreendimentos exploratórios!

Crie sua conta gratuita no ONLYOFFICE

Visualize, edite e colabore em documentos, planilhas, slides, formulários e arquivos PDF online.