Löschung bestimmter Wörter in Tabellenkalkulationen mit einem ONLYOFFICE-Makro

8 Mai 2024By Vlad

Bei der Arbeit mit Tabellenkalkulationen gibt es häufig Situationen, die eine Suche nach einem bestimmten Wort in den Zellen eines Blattes erfordern, zusammen mit möglichen Änderungen oder Löschungen. In diesem Beitrag werden wir ein Makro entwickeln, das nach dem Vorkommen eines bestimmten Wortes in einer Tabellenkalkulation suchen und es löschen kann.

Erstellung des Makros

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

Zunächst erhalten wir das aktive Arbeitsblatt und die Auswahl in den Variablen oWorksheet und oRange und legen das Wort fest, nach dem wir in der gesamten Tabellenkalkulation suchen wollen.

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

Als Nächstes durchlaufen wir den Bereich mit einer foreach-Schleife, ermitteln den Wert jeder Zelle in der Auswahl und übergeben ihn an die Methode containsWord. Die Methode containsWord() benötigt zwei Parameter: den Wert in der Zelle und das Wort, nach dem wir suchen wollen.

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

Nach dem Abschluss der Methode containsWord() wird die nachfolgende Aktion durch den zurückgegebenen Wert bestimmt. Ist der Wert 1, was auf eine exakte Übereinstimmung hinweist, wird die Zelle gelöscht. Gibt die Methode hingegen den Wert true zurück, was das Vorhandensein des Zielworts innerhalb weiterer Zeichen anzeigt, wird die Zelle hervorgehoben.

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

Die Methode containsWord() dient als die wichtigste Berechnungsfunktion in diesem Makro. Sie akzeptiert den Wert in der Zelle und das zu suchende Wort, wobei sie es so kürzt, dass alle zusätzlichen Leerzeichen entfernt werden. Wenn der Wert genau mit dem Zielwort übereinstimmt und keine zusätzlichen Inhalte besitzt, gibt sie 1 zurück. Wenn der Wert jedoch das Zielwort zusammen mit anderen Zeichen beinhaltet, wie z. B. innerhalb eines Satzes, gibt es true zurück.

Der vollständige Makrocode

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

Sehen wir uns an, wie unser Makro funktioniert.

Da haben Sie ein Makro zum Löschen von Wörtern in Tabellenkalkulationen. Dieses praktische Tool wurde entwickelt, um bestimmte Wörter zu entfernen und so die Bearbeitung Ihrer Tabellenkalkulation zu einem Kinderspiel zu machen, Zeit zu sparen und Ihren Workflow zu verbessern.

Verpassen Sie nicht die Chance, die Leistungsfähigkeit der ONLYOFFICE API zu nutzen. Unsere umfangreiche Bibliothek von API-Methoden ist Ihr Schlüssel zur Umsetzung Ihrer Ideen. Wenn Sie Fragen oder innovative Konzepte haben, können Sie uns diese gern mitteilen. Ihre Anregungen sind uns sehr wichtig, und wir freuen uns über die Möglichkeit der Zusammenarbeit mit Ihnen. Viel Erfolg!