Comment supprimer des mots spécifiques dans les feuilles de calcul avec la macro ONLYOFFICE

8 mai 2024By Dasha

Dans les feuilles de calcul, il est fréquent de rencontrer des scénarios nécessitant la recherche d’un mot particulier dans les cellules d’une feuille, ainsi que d’éventuelles modifications ou suppressions d’occurrences. Dans ce billet de blog, nous allons développer une macro conçue pour rechercher et supprimer les occurrences d’un mot spécifique dans une feuille de calcul.

Comment supprimer des mots spécifiques dans les feuilles de calcul avec la macro ONLYOFFICE

Construction de la macro

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

Pour commencer, nous obtenons la feuille de calcul active et la sélection dans les variables oWorksheet et oRange, et nous définissons le mot que nous voulons rechercher dans l’ensemble de la feuille de calcul.

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

Ensuite, nous parcourons la plage à l’aide d’une boucle foreach, nous obtenons la valeur de chaque cellule de la sélection et nous la transmettons à la méthode containsWord. La méthode containsWord() prend deux paramètres : la valeur de la cellule et le mot que nous voulons rechercher.

    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));
    }

À l’issue de la méthode containsWord(), l’action suivante est déterminée par la valeur renvoyée. Si la valeur est 1, ce qui indique une correspondance exacte, la cellule est effacée. En revanche, si la méthode renvoie la valeur true, indiquant la présence du mot cible dans des caractères supplémentaires, la cellule est mise en surbrillance.

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);
    }
  }

La méthode containsWord() est la principale fonction de calcul de cette macro. Elle accepte la valeur de la cellule et le mot à rechercher, qu’elle coupe pour éliminer tout espace supplémentaire. Si la valeur de la cellule correspond exactement au mot cible sans aucun contenu supplémentaire, elle renvoie 1. En revanche, si la valeur de la cellule contient le mot cible avec d’autres caractères, par exemple dans une phrase, elle renvoie true.

Code complet de la macro

(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);
    }
  }
})();

Voyons comment notre macro fonctionne.

Et voilà, la macro de suppression de mots du tableur est en action ! Cet outil astucieux est conçu pour supprimer sans effort des mots spécifiques, afin de faciliter l’édition de vos feuilles de calcul, de gagner du temps et d’améliorer votre flux de travail dans les feuilles de calcul. Bonne édition !

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 !