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 użyć tego przykładu, musisz spełnić te wymagania wstępne:

  • Konto Google (w przypadku kont Google Workspace może być wymagana zgoda administratora).
  • przeglądarkę internetową 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 stronę script.google.com.
  3. W lewym górnym rogu kliknij Nowy projekt.
  4. Usuń cały kod z edytora skryptów i wklej poniższy kod.

    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 Usuń zduplikowane wiersze i kliknij Zmień nazwę.

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

  9. Obok pozycji Wybierz typ kliknij Włącz typy wdrożenia Ikona włączania typów wdrożenia > Biblioteka.

  10. Wpisz opis biblioteki, np. Usuń zduplikowane wiersze. Każda osoba, która ma dostęp do biblioteki, może wyświetlić ten opis.

  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 kolejnym kroku.

Uruchamianie skryptu

Aby używać biblioteki, musisz mieć co najmniej uprawnienia do wyświetlania jej projektu Apps Script. Jako twórca biblioteki masz wymagane uprawnienia do korzystania z niej. Jeśli chcesz umożliwić innym osobom korzystanie z biblioteki, przyznaj im uprawnienia do wyświetlania projektu Apps Script.

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

  1. Otwórz arkusz kalkulacyjny w Arkuszach Google zawierający dane z duplikatami wierszy. Aby użyć przykładowego arkusza kalkulacyjnego, utwórz kopię arkusza Sample duplicate rows.
  2. Kliknij Rozszerzenia > Apps Script.
  3. Obok opcji Biblioteki kliknij Dodaj bibliotekę.
  4. W sekcji Identyfikator skryptu wklej identyfikator skryptu z projektu biblioteki Apps Script skopiowany w poprzedniej sekcji.
  5. Kliknij Wyszukaj.
  6. W sekcji Wersja wybierz 1.
  7. Kliknij Dodaj.
  8. Usuń cały kod z edytora skryptów i wklej poniższy kod.

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

  10. Kliknij Wykonaj.

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

Sprawdź kod

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

Wyświetl kod źródłowy

Najpierw skrypt wykonuje jedno wywołanie arkusza kalkulacyjnego, aby pobrać wszystkie dane. Możesz odczytywać arkusz wiersz po wierszu, ale operacje JavaScript są znacznie szybsze niż komunikacja z innymi usługami, takimi jak Arkusze. Im mniej połączeń wykonasz, tym szybciej to zrobisz. Jest to ważne, ponieważ każde wykonanie skryptu ma maksymalny czas działania wynoszący 6 minut.

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

Zmienna data to dwuwymiarowa tablica JavaScriptu, która zawiera wszystkie wartości w arkuszu. newData to pusta tablica, w której skrypt umieszcza wszystkie niepowtarzające się wiersze.

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

Pierwsza pętla for iteruje po każdym wierszu w datadwuwymiarowej tablicy. W przypadku każdego wiersza druga pętla sprawdza, czy w tablicy newData istnieje już inny wiersz z pasującymi danymi. Jeśli nie jest to duplikat, wiersz jest umieszczany w tablicy newData.

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

Na koniec skrypt usuwa dotychczasową zawartość 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 dowolnie edytować bibliotekę, aby dostosować ją do swoich potrzeb. Poniżej znajdziesz opcjonalną modyfikację.

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

Zamiast usuwać wiersze, które w całości pasują do siebie, możesz usunąć wiersze z pasującymi danymi tylko w jednej lub dwóch 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ższy warunek 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ł utworzony przez Romaina Vialarda, eksperta Google ds. deweloperów. Obserwuj Romaina na Twitterze: @romain_vialard.

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

Dalsze kroki