Guida rapida alla libreria

Crea una libreria Apps Script che puoi utilizzare per rimuovere le righe duplicate nei dati del foglio di lavoro.

Obiettivi

  • Configura lo script.
  • Esegui lo script.

Prerequisiti

Per utilizzare questo esempio, sono necessari i seguenti prerequisiti:

  • Un Account Google (gli account Google Workspace potrebbero richiedere l'approvazione dell'amministratore).
  • Un browser web con accesso a internet.

Configurare lo script

Per compilare la libreria, svolgi i seguenti passaggi:

  1. Accedi al tuo Account Google.
  2. Per aprire l'editor di script, vai alla pagina script.google.com.
  3. Fai clic su Nuovo progetto in alto a sinistra.
  4. Elimina qualsiasi codice nell'editor di script e incolla il codice riportato di seguito.

    sheets/removingDuplicates/removingDuplicates.gs
    /**
     * Removes duplicate rows from the current sheet.
     */
    function removeDuplicates() {
      const sheet = SpreadsheetApp.getActiveSheet();
      const data = sheet.getDataRange().getValues();
      const uniqueData = {};
      for (let row of data) {
        const key = row.join();
        uniqueData[key] = uniqueData[key] || row;
      }
      sheet.clearContents();
      const newData = Object.values(uniqueData);
      sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
    }
  5. Fai clic su Salva Icona Salva.

  6. In alto a sinistra, fai clic su Progetto senza titolo.

  7. Assegna allo script il nome Rimuovi righe duplicate e fai clic su Rinomina.

  8. Fai clic su Esegui il deployment > Nuovo deployment.

  9. Accanto a Seleziona tipo, fai clic su Attiva tipi di deployment L'icona per attivare i tipi di deployment > Libreria.

  10. Inserisci una descrizione della libreria, ad esempio Rimuovi righe duplicate. Chiunque abbia accesso alla raccolta può visualizzare questa descrizione.

  11. Fai clic su Esegui il deployment.

  12. A sinistra, fai clic su Impostazioni progetto L'icona per le impostazioni del progetto.

  13. In ID, copia l'ID script da utilizzare in un passaggio successivo.

Esegui lo script

Per utilizzare una libreria, devi disporre almeno delle autorizzazioni di visualizzazione per il relativo progetto Apps Script. Poiché hai creato la libreria, disponi delle autorizzazioni necessarie per utilizzarla. Se vuoi consentire ad altri di utilizzare la raccolta, concedi loro l'autorizzazione di visualizzazione per il progetto Apps Script.

Per utilizzare la libreria, svolgi i seguenti passaggi:

  1. Apri un foglio di lavoro di Fogli Google contenente dati con righe duplicate. Per utilizzare un foglio di lavoro di esempio, crea una copia del foglio di lavoro Righe duplicate di esempio.
  2. Fai clic su Estensioni > Apps Script.
  3. Accanto a Raccolte, fai clic su Aggiungi una raccolta .
  4. Nella sezione ID script, incolla l'ID script del progetto Apps Script della libreria che hai copiato nella sezione precedente.
  5. Fai clic su Cerca.
  6. Nella sezione Versione, seleziona 1.
  7. Fai clic su Aggiungi.
  8. Elimina qualsiasi codice nell'editor di script e incolla il codice riportato di seguito.

    function runLibrary() {
     Removeduplicaterows.removeDuplicates();
    }
    
  9. Nel menu a discesa delle funzioni, seleziona runLibrary.

  10. Fai clic su Esegui.

  11. Torna al foglio di lavoro per visualizzare i dati aggiornati senza righe duplicate.

Esamina il codice

Per esaminare il codice di Apps Script per questa soluzione, fai clic su Visualizza codice sorgente di seguito:

Visualizza il codice sorgente

Innanzitutto, lo script effettua una singola chiamata al foglio di lavoro per recuperare tutti i dati. Puoi scegliere di leggere il foglio riga per riga, ma le operazioni JavaScript sono molto più veloci rispetto all'interazione con altri servizi come Fogli. Meno chiamate effettui, più velocemente va. Questo è importante perché ogni esecuzione dello script ha un tempo di esecuzione massimo di 6 minuti.

sheets/removingDuplicates/removingDuplicates.gs
const sheet = SpreadsheetApp.getActiveSheet();
const data = sheet.getDataRange().getValues();

La variabile data è un array 2D JavaScript che contiene tutti i valori del foglio. newData è un array vuoto in cui lo script inserisce tutte le righe non duplicate.

sheets/removingDuplicates/removingDuplicates.gs
const newData = Object.values(uniqueData);

Il primo ciclo for esegue l'iterazione su ogni riga dell'array data 2D. Per ogni riga, il secondo ciclo verifica se nell'array newData esiste già un'altra riga con dati corrispondenti. Se non è un valore duplicato, la riga viene inserita nell'array newData.

sheets/removingDuplicates/removingDuplicates.gs
uniqueData[key] = uniqueData[key] || row;

Infine, lo script elimina i contenuti esistenti del foglio e inserisce i contenuti dell'array newData.

sheets/removingDuplicates/removingDuplicates.gs
sheet.clearContents();
const newData = Object.values(uniqueData);
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);

Modifiche

Puoi modificare la raccolta in base alle tue esigenze. Di seguito è riportata una modifica facoltativa.

Rimuovere le righe con dati corrispondenti in alcune colonne

Anziché rimuovere completamente le righe corrispondenti, potresti rimuovere le righe con dati corrispondenti in una o due colonne. Per farlo, puoi modificare l'affermazione condizionale.

Nel codice di esempio, aggiorna la seguente riga:

    if(row.join() == newData[j].join()){
      duplicate = true;
    }

Sostituisci la riga con il seguente codice:

    if(row[0] == newData[j][0] && row[1] == newData[j][1]){
      duplicate = true;
    }

L'istruzione condizionale riportata sopra trova i duplicati ogni volta che due righe contengono gli stessi dati nella prima e nella seconda colonna del foglio.

Collaboratori

Questo esempio è stato creato da Romain Vialard, Google Developer Expert. Segui Romain su Twitter @romain_vialard.

Questo Sample è gestito da Google con l'aiuto degli esperti Google Developer.

Passaggi successivi