Krótkie wprowadzenie do biblioteki

Utwórz bibliotekę Apps Script, której możesz używać do usuwania zduplikowanych wierszy w danych arkusza kalkulacyjnego.

Cele

  • Skonfiguruj skrypt.
  • Uruchom skrypt.

Wymagania wstępne

Aby skorzystać z tego szablonu, musisz spełnić te wymagania wstępne:

  • Konto Google (konta Google Workspace mogą wymagać zatwierdzenia przez administratora).
  • przeglądarka internetowa z dostępem do internetu;

Konfigurowanie skryptu

Aby utworzyć bibliotekę, wykonaj te czynności:

  1. Zaloguj się na konto Google.
  2. Aby otworzyć edytor skryptów, wejdź na script.google.com.
  3. W lewym górnym rogu kliknij Nowy projekt.
  4. Usuń kod w edytorze skryptu i wklej kod poniżej.

    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. Kliknij Zapisz Ikona zapisania.

  6. W lewym górnym rogu kliknij Projekt bez tytułu.

  7. Nazwij skrypt Usuwanie duplikatów wierszy i kliknij Zmień nazwę.

  8. Kliknij Wdróż > Nowe wdrożenie.

  9. Obok opcji Wybierz typ kliknij Włącz typy wdrożenia Ikona włączenia typów wdrożenia > Bibliotek.

  10. Wpisz opis biblioteki, np. Usuń zduplikowane wiersze. Ten opis może wyświetlić każdy, kto ma dostęp do biblioteki.

  11. Kliknij Wdróż.

  12. Po lewej stronie kliknij Ustawienia projektu Ikona ustawień projektu.

  13. W sekcji Identyfikatory skopiuj identyfikator skryptu, aby użyć go w następnym kroku.

Uruchamianie skryptu

Aby korzystać z biblioteki, musisz mieć co najmniej uprawnienia do wyświetlania w projekcie Apps Script. Ponieważ biblioteka została utworzona przez Ciebie, masz do niej wymagane uprawnienia. Jeśli chcesz, aby inni mogli korzystać z biblioteki, przyznaj im uprawnienia do wyświetlania projektu Apps Script.

Aby korzystać z biblioteki, wykonaj te czynności:

  1. Otwórz arkusz kalkulacyjny Arkuszy Google zawierający dane z powtarzającymi się wierszami. Aby użyć przykładowego arkusza kalkulacyjnego, utwórz kopię przykładowego arkusza kalkulacyjnego z duplikatami wierszy.
  2. Kliknij Rozszerzenia > Apps Script.
  3. Obok opcji Biblioteki kliknij Dodaj bibliotekę.
  4. W sekcji Identyfikator skryptu wklej identyfikator skryptu z biblioteki projektu Apps Script skopiowanego w poprzedniej sekcji.
  5. Kliknij Wyszukaj.
  6. W sekcji Wersja wybierz 1.
  7. Kliknij Dodaj.
  8. Usuń kod w edytorze skryptu i wklej kod poniżej.

    function runLibrary() {
     Removeduplicaterows.removeDuplicates();
    }
    
  9. W menu funkcji wybierz runLibrary.

  10. Kliknij Wykonaj.

  11. Wróć do arkusza kalkulacyjnego, aby wyświetlić zaktualizowane dane bez duplikatów wierszy.

Sprawdzanie kodu

Aby sprawdzić kod Apps Script dla tego rozwiązania, kliknij Wyświetl kod źródłowy poniżej:

Wyświetl kod źródłowy

Najpierw skrypt wysyła pojedyncze żądanie do arkusza kalkulacyjnego, aby pobrać wszystkie dane. Możesz odczytać arkusz wiersz po wierszu, ale operacje JavaScript są znacznie szybsze niż komunikacja z innymi usługami, takimi jak Arkusz kalkulacyjny. Im mniej połączeń nawiązujesz, tym szybciej to działa. Jest to ważne, ponieważ każde uruchomienie skryptu trwa maksymalnie 6 minut.

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

Zmienna data to dwuwymiarowa tablica JavaScript zawierająca wszystkie wartości w arkuszu. newData to pusty tablica, do której skrypt umieszcza wszystkie niepowtarzalne wiersze.

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

Pierwszy cykl for iteruje po każdym wierszu dwuwymiarowego tablicowego ciągu znaków data. W przypadku każdego wiersza drugi cykl sprawdza, czy w tablicy newData istnieje już inny wiersz z pasującymi danymi. Jeśli nie jest to duplikat, wiersz jest dodawany do tablicy newData.

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

Na koniec skrypt usuwa istniejące dane z arkusza i wstawia zawartość tablicy newData.

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

Reguły przekształcania

Możesz edytować bibliotekę według własnych potrzeb. Poniżej znajduje się opcjonalna modyfikacja.

Usuwanie wierszy z pasującymi danymi w niektórych kolumnach

Zamiast usuwać wiersze, które są identyczne, możesz usunąć wiersze z pasującymi danymi tylko w jednej lub 2 kolumnach. Aby to zrobić, możesz zmienić instrukcję warunkową.

W przykładowym kodzie zaktualizuj ten wiersz:

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

Zastąp wiersz tym kodem:

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

Powyższe wyrażenie warunkowe znajduje duplikaty za każdym razem, gdy 2 wiersze mają te same dane w pierwszej i drugiej kolumnie arkusza.

Współtwórcy

Ten przykład został przygotowany przez Romaina Vialarda, eksperta ds. programowania w Google. Obserwuj Romaina na Twitterze @romain_vialard.

Ten przykład jest obsługiwany przez Google przy pomocy ekspertów Google ds. programowania.

Dalsze kroki