Como excluir palavras específicas em planilhas usando uma macro do ONLYOFFICE

9 maio 2024By Klaibson

Ao trabalhar com planilhas, é comum encontrar cenários que exigem a busca por uma palavra específica nas células de uma planilha, juntamente com possíveis modificações ou exclusões de instâncias. Nesta postagem do blog, desenvolveremos uma macro projetada para pesquisar e excluir ocorrências de uma palavra específica em uma planilha.

Como excluir palavras específicas em planilhas usando uma macro do ONLYOFFICE

Construindo a macro

const oWorksheet = Api.GetActiveSheet();
const oRange = oWorksheet.GetSelection();
const wordToCheck = "apple";

Para começar, pegamos a planilha ativa e a seleção nas variáveis ​​oWorksheet e oRange, e definimos a palavra que queremos pesquisar em toda a planilha.

let index = 0;
  oRange.ForEach(function (range) {
    index++;
    const cellValue = oWorksheet.GetRange(range).GetValue();
    const contains = containsWord(cellValue, wordToCheck);

Em seguida, iteramos pelo intervalo usando um loop foreach, obtemos o valor em cada célula da seleção e o passamos para o método containsWord(). O método containsWord() usa dois parâmetros: o valor na célula e a palavra que queremos pesquisar.

    if (contains === 1) {
      //Uncomment the console.log() to view deleted cells in the browser's console.
      // console.log(`The sentence ${cellValue} contained the word you wanted to delete, and was deleted.`);
      oWorksheet.GetRange(range).Clear();
    } else if (contains === true) {
      oWorksheet
        .GetRange(range)
        .SetFillColor(Api.CreateColorFromRGB(204, 0, 0));
    }

Após a conclusão do método containsWord(), a ação subsequente é determinada pelo valor retornado. Se o valor for 1, indicando uma correspondência exata, a célula será limpa. Por outro lado, se o método retornar verdadeiro, significando a presença da palavra alvo dentro de caracteres adicionais, a célula será destacada.

function containsWord(sentence, word) {
    const trimmedSentence = sentence.trim();
    const trimmedWord = word.trim();
    if (trimmedSentence === trimmedWord) {
      return 1;
    } else {
      const regex = new RegExp("\\b" + trimmedWord + "\\b", "i");
      return regex.test(trimmedSentence);
    }
  }

O método containsWord() serve como a função computacional principal nesta macro. Aceita o valor da célula e a palavra a ser pesquisada, recortando-a para eliminar espaços adicionais. Se o valor da célula corresponder precisamente à palavra de destino sem conteúdo adicional, ele retornará 1. No entanto, se o valor da célula contiver a palavra de destino junto com outros caracteres, como dentro de uma frase, ele retornará verdadeiro.

O código de macro completo

(function () {
  const oWorksheet = Api.GetActiveSheet();
  const oRange = oWorksheet.GetSelection();
  const wordToCheck = "apple";
  let index = 0;
  oRange.ForEach(function (range) {
    index++;
    const cellValue = oWorksheet.GetRange(range).GetValue();
    const contains = containsWord(cellValue, wordToCheck);

    if (contains === 1) {
      //Uncomment the console.log() to view deleted cells in the browser's console.
      // console.log(`The sentence ${cellValue} contained the word you wanted to delete, and was deleted. `);
      oWorksheet.GetRange(range).Clear();
    } else if (contains === true) {
      oWorksheet
        .GetRange(range)
        .SetFillColor(Api.CreateColorFromRGB(204, 0, 0));
    }
  });

  function containsWord(sentence, word) {
    const trimmedSentence = sentence.trim();
    const trimmedWord = word.trim();
    if (trimmedSentence === trimmedWord) {
      return 1;
    } else {
      const regex = new RegExp("\\b" + trimmedWord + "\\b", "i");
      return regex.test(trimmedSentence);
    }
  }
})();

Vamos ver o desempenho de nossa macro.

E aí está, a macro de exclusão de palavras da planilha em ação! Esta ferramenta bacana foi projetada para remover palavras específicas sem esforço, facilitando a edição da planilha, economizando tempo e aprimorando o fluxo de trabalho da planilha. Boa edição!

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!