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, devi soddisfare 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 creare la libreria, procedi nel seguente modo:

  1. Accedi al tuo Account Google.
  2. Per aprire l'editor di script, vai alla pagina script.google.com.
  3. In alto a sinistra, fai clic su Nuovo progetto.
  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 al tuo script il nome Remove duplicate rows (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 abilitare 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 delle impostazioni del progetto.

  13. Nella sezione 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 l'autorizzazione di visualizzazione per il progetto Apps Script.

Per utilizzare la raccolta, segui questi passaggi:

  1. Apri un foglio di lavoro Fogli Google che contiene dati con righe duplicate. Per utilizzare un foglio di lavoro di esempio, crea una copia del foglio di lavoro Esempio di righe duplicate.
  2. Fai clic su Estensioni > Apps Script.
  3. Accanto a Librerie, fai clic su Aggiungi una libreria .
  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 della funzione, 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 Apps Script per questa soluzione, fai clic su Visualizza codice sorgente di seguito:

Visualizza il codice sorgente

Innanzitutto, lo script esegue 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 alla comunicazione con altri servizi come Fogli. Meno chiamate fai, più velocemente andrà avanti. Questo è importante perché ogni esecuzione dello script ha una durata massima di 6 minuti.

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

La variabile data è un array bidimensionale 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 scorre ogni riga dell'array bidimensionale data. Per ogni riga, il secondo ciclo verifica se esiste già un'altra riga con dati corrispondenti nell'array newData. Se non è un 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 libreria in base alle tue esigenze. Di seguito è riportata una modifica facoltativa.

Rimuovere le righe con dati corrispondenti in alcune colonne

Anziché rimuovere le righe che corrispondono interamente, potresti voler rimuovere le righe con dati corrispondenti in una o due colonne. Per farlo, puoi modificare l'istruzione 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 precedente trova i duplicati ogni volta che due righe hanno gli stessi dati nella prima e nella seconda colonna del foglio.

Collaboratori

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

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

Passaggi successivi