Guida rapida alla libreria

Crea una libreria di 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 disporre dei seguenti prerequisiti:

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

Configura lo script

Per creare la libreria, segui questi passaggi:

  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 allo script il nome Rimuovi le righe duplicate e fai clic su Rinomina.

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

  9. Accanto a Seleziona tipo, fai clic su Abilita tipi di deployment L'icona di abilita i tipi di deployment > Libreria.

  10. Inserisci una descrizione della libreria, ad esempio Rimuovi le 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 Icona delle impostazioni progetto.

  13. In ID, copia l'ID script per utilizzarlo in un passaggio successivo.

Esegui lo script

Per utilizzare una libreria, devi disporre almeno delle autorizzazioni di visualizzazione per il relativo progetto Apps Script. Da quando hai creato la libreria, hai le autorizzazioni necessarie per utilizzarla. Se vuoi consentire ad altre persone 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 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.

Rivedi 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 notevolmente più veloci rispetto ad altri servizi come Foglio di lavoro. Minore è il numero di chiamate effettuate, più rapido è il processo. 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 JavaScript bidimensionale che contiene tutti i valori nel 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 bidimensionale di data. Per ogni riga, il secondo loop verifica se nell'array newData esiste già un'altra riga con dati corrispondenti. Se non è un duplicato, la riga viene inviata all'array newData.

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

Infine, lo script elimina il contenuto esistente del foglio e inserisce il contenuto 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 come preferisci per le tue esigenze. Di seguito è riportata una modifica facoltativa.

Rimuovi le righe con dati corrispondenti in alcune colonne

Invece di rimuovere le righe che corrispondono completamente, ti consigliamo di rimuovere le righe con dati corrispondenti solo in una o due colonne. Per farlo, puoi modificare l'affermazione condizionale.

Nel codice campione, 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 sopra riportata trova duplicati ogni volta che due righe hanno gli stessi dati nella prima e nella seconda colonna del foglio.

Collaboratori

Questo campione è stato creato da Romain Vialard, un esperto di sviluppatori Google. Segui Romain su Twitter @romain_vialard.

Questo campione è gestito da Google con l'aiuto degli Esperti Google Developers.

Passaggi successivi