Come eliminare parole specifiche nei fogli di calcolo usando una macro ONLYOFFICE

13 maggio 2024By Alice

Quando si lavora con i fogli di calcolo, capita spesso di dover ricercare una parola specifica nelle celle di un foglio, di doverle poi modificare o eliminare del tutto. In questo post del blog svilupperemo una macro progettata per cercare ed eliminare le occorrenze di una parola specifica all’interno di un foglio di calcolo.

How to delete specific words in spreadsheets using an ONLYOFFICE macro

Costruire la macro

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

Per iniziare, otteniamo il foglio di lavoro attivo e la selezione nelle variabili oWorksheet e oRange, poi impostiamo la parola che vogliamo cercare in tutto il foglio di calcolo.

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

Successivamente, eseguiamo l’iterazione dell’intervallo usando un ciclo foreach, ottieniamo il valore in ogni cella della selezione e la passiamo al metodo containsWord. Il metodo containsWord() accetta due parametri: il valore nella cella e la parola che vogliamo cercare.

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

Una volta completato il metodo containsWord(), l’azione successiva è determinata dal valore restituito. Se il valore è 1, che indica una corrispondenza esatta, la cella viene cancellata. D’altra parte, se il metodo restituisce true, a indicare la presenza della parola di destinazione all’interno di caratteri aggiuntivi, la cella viene evidenziata.

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

Il metodo containsWord() è la funzione di calcolo primaria in questa macro: questa accetta il valore della cella e la parola da cercare, tagliandola per eliminare eventuali spazi aggiuntivi. Se il valore della cella corrisponde esattamente alla parola di destinazione senza contenuto aggiuntivo, restituisce 1. Tuttavia, se il valore della cella contiene la parola di destinazione insieme ad altri caratteri, ad esempio all’interno di una frase, restituisce true.

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

Vediamo come funziona la nostra macro:

Ed ecco qua la macro per eliminare le parole nel foglio di calcolo in azione! Questo ingegnoso strumento è progettato per rimuovere facilmente parole specifiche, rendendo la modifica del foglio di calcolo un gioco da ragazzi, risparmiando tempo e migliorando il flusso di lavoro all’interno del foglio di calcolo. Buon editing!

Non perdere l’occasione di sfruttare la potenza dell’API di ONLYOFFICE. La nostra vasta libreria di metodi API è la chiave per trasformare le tue idee in realtà. Se hai domande o concetti innovativi in mente, ti invitiamo a condividerli con noi. Il tuo contributo è molto apprezzato e siamo sempre entusiasti della possibilità di collaborare con te. Buona fortuna con la tua esplorazione!