Rozszerzenie Arkuszy Google

Google Apps Script umożliwia wykonywanie nowych i ciekawych czynności w Arkuszach Google. Za pomocą Apps Script możesz dodawać do Arkuszy Google niestandardowe menu, okna dialogowe i paski boczne. Umożliwia też pisanie niestandardowych funkcji w Arkuszach, a także integrowanie Arkuszy z innymi usługami Google, takimi jak Kalendarz, Dysk czy Gmail.

Większość skryptów przeznaczonych do Arkuszy Google służy do manipulowania tablicami w celu interakcji z komórkami, wierszami i kolumnami w arkuszu kalkulacyjnym. Jeśli nie znasz się na tablicach w języku JavaScript, w Codecademy znajdziesz świetny moduł do trenowania tablic. (Ten kurs nie został stworzony przez Google i nie jest z nim powiązany).

Aby dowiedzieć się, jak używać Apps Script w Arkuszach Google, przeczytaj 5-minutowe krótkie wprowadzenie do makr, menu i funkcji niestandardowych.

Rozpocznij

Apps Script zawiera specjalne interfejsy API, które pozwalają automatycznie tworzyć, odczytywać i edytować Arkusze Google. Skrypt Apps Script może wchodzić w interakcje z Arkuszami Google na 2 sposoby: za pomocą dowolnego skryptu można utworzyć lub zmodyfikować arkusz, jeśli użytkownik skryptu ma do niego odpowiednie uprawnienia. Skrypt może być też powiązany z arkuszem kalkulacyjnym, co daje skryptowi specjalne funkcje umożliwiające zmianę interfejsu użytkownika lub odpowiadanie po otwarciu arkusza kalkulacyjnego. Aby utworzyć powiązany skrypt, w Arkuszach Google wybierz Rozszerzenia > Apps Script.

Usługa arkuszy kalkulacyjnych traktuje Arkusze Google jak siatkę, która korzysta z dwuwymiarowych tablic. Aby pobrać dane z arkusza kalkulacyjnego, musisz uzyskać dostęp do arkusza kalkulacyjnego, w którym są one przechowywane, pobrać z arkusza zakres, w którym się znajdują, i pobrać wartości komórek. Apps Script ułatwia dostęp do danych, odczytując dane strukturalne z arkusza kalkulacyjnego i tworząc dla nich obiekty JavaScript.

Odczytywanie danych

Załóżmy, że masz listę nazw produktów i ich numerów, które przechowujesz w arkuszu kalkulacyjnym, tak jak na ilustracji poniżej.

Z przykładu poniżej dowiesz się, jak pobierać i rejestrować nazwy produktów oraz ich numery.

function logProductInfo() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  for (var i = 0; i < data.length; i++) {
    Logger.log('Product name: ' + data[i][0]);
    Logger.log('Product number: ' + data[i][1]);
  }
}

Wyświetlanie logów

Aby wyświetlić zarejestrowane dane, u góry edytora skryptów kliknij Dziennik wykonywania.

Zapisywanie danych

Aby zapisać dane, takie jak nowa nazwa i nowy numer produktu w arkuszu kalkulacyjnym, dodaj ten kod na końcu skryptu.

function addProduct() {
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow(['Cotton Sweatshirt XL', 'css004']);
}

Powyższy kod dodaje na dole arkusza kalkulacyjnego nowy wiersz z określonymi wartościami. Po uruchomieniu tej funkcji zobaczysz nowy wiersz dodany do arkusza kalkulacyjnego.

Niestandardowe menu i interfejsy

Możesz dostosowywać Arkusze Google, dodając niestandardowe menu, okna dialogowe i paski boczne. Aby poznać podstawy tworzenia menu, zapoznaj się z przewodnikiem po menu. Informacje o dostosowywaniu zawartości okna dialogowego znajdziesz w przewodniku po usłudze HTML.

Możesz też dołączyć funkcję skryptu do obrazu lub rysunków w arkuszu kalkulacyjnym. Funkcja ta zostanie uruchomiona, gdy użytkownik kliknie obraz lub rysunek. Więcej informacji znajdziesz w artykule Grafika i Rysunki w Arkuszach Google.

Jeśli zamierzasz opublikować niestandardowy interfejs jako dodatek, postępuj zgodnie ze wskazówkami dotyczącymi stylu, aby zachować spójność ze stylem i układem edytora Arkuszy Google.

Łączenie z Formularzami Google

Apps Script umożliwia łączenie Formularzy Google z Arkuszami Google za pomocą usług Formularzy i Arkuszy. Ta funkcja może automatycznie tworzyć formularze Google na podstawie danych z arkusza kalkulacyjnego. Apps Script umożliwia też korzystanie z reguł, takich jak onFormSubmit, do wykonywania określonych działań po tym, jak użytkownik odpowie na formularz. Aby dowiedzieć się więcej o łączeniu Arkuszy Google z Formularzami Google, zapoznaj się z 5-minutowym krótkim wprowadzeniem do zarządzania odpowiedziami w Formularzach Google.

Format

Klasa Range udostępnia metody takie jak setBackground(color) umożliwiające dostęp do komórek lub zakresu komórek i zmianę ich formatu. Z przykładu poniżej dowiesz się, jak ustawić styl czcionki w zakresie:

function formatMySpreadsheet() {
  // Set the font style of the cells in the range of B2:C2 to be italic.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var cell = sheet.getRange('B2:C2');
  cell.setFontStyle('italic');
}

Walidacja danych

Apps Script umożliwia dostęp do istniejących reguł weryfikacji danych w Arkuszach Google oraz tworzenie nowych reguł. Na przykład w poniższym przykładzie pokazujemy, jak ustawić regułę sprawdzania poprawności danych, która zezwala tylko na liczby od 1 do 100.

function validateMySpreadsheet() {
  // Set a rule for the cell B4 to be a number between 1 and 100.
  var cell = SpreadsheetApp.getActive().getRange('B4');
  var rule = SpreadsheetApp.newDataValidation()
     .requireNumberBetween(1, 100)
     .setAllowInvalid(false)
     .setHelpText('Number must be between 1 and 100.')
     .build();
  cell.setDataValidation(rule);
}

Więcej informacji o pracy z regułami weryfikacji danych znajdziesz w sekcjach SpreadsheetApp.newDataValidation(), DataValidationBuilder i Range.setDataValidation(rule).

Listy przebojów

Apps Script umożliwia umieszczanie w arkuszu kalkulacyjnym wykresów, które przedstawiają dane z określonego zakresu. Ten przykład pozwala wygenerować umieszczony wykres słupkowy, zakładając, że w komórkach A1:B15 masz dane, które można umieścić na wykresie:

function newChart() {
  // Generate a chart representing the data in the range of A1:B15.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var chart = sheet.newChart()
     .setChartType(Charts.ChartType.BAR)
     .addRange(sheet.getRange('A1:B15'))
     .setPosition(5, 5, 0, 0)
     .build();

  sheet.insertChart(chart);
}

Więcej informacji o umieszczaniu wykresów w arkuszu kalkulacyjnym znajdziesz w artykule EmbeddedChart i konkretnych kreatorach wykresów, np. EmbeddedPieChartBuilder.

Funkcje niestandardowe w Arkuszach Google

Funkcja niestandardowa jest podobna do wbudowanej funkcji arkusza kalkulacyjnego, takiej jak =SUM(A1:A5), ale jej działanie definiuje się za pomocą Apps Script. Możesz na przykład utworzyć funkcję niestandardową in2mm(), która konwertuje wartość z cali na milimetry, a następnie użyć tej formuły w arkuszu kalkulacyjnym, wpisując =in2mm(A1) lub =in2mm(10) w komórkę.

Aby dowiedzieć się więcej o funkcjach niestandardowych, przeczytaj 5-minutowe krótkie wprowadzenie dotyczące menu i funkcji niestandardowych lub zapoznaj się ze szczegółowym przewodnikiem po funkcjach niestandardowych.

Makra

Makra to kolejny sposób wykonywania kodu Apps Script z interfejsu Arkuszy Google. W przeciwieństwie do niestandardowych funkcji możesz je aktywować za pomocą skrótu klawiszowego lub menu Arkuszy Google. Więcej informacji znajdziesz w artykule o makrach w Arkuszach Google.

Dodatki do Arkuszy Google

Dodatki to specjalne pakiety projektów Apps Script, które są uruchamiane w Arkuszach Google i można je zainstalować ze sklepu z dodatkami do Arkuszy Google. Jeśli masz stworzony skrypt do Arkuszy Google i chcesz go udostępnić, możesz publish go jako dodatek, aby inni użytkownicy mogli go zainstalować ze sklepu z dodatkami.

Aktywatory

Skrypty powiązane z plikiem Arkuszy Google mogą używać prostych aktywatorów, takich jak funkcje onOpen() i onEdit(), aby automatycznie reagować, gdy użytkownik z uprawnieniami do edycji arkusza kalkulacyjnego otworzy lub zmieni ten arkusz.

Podobnie jak w przypadku prostych reguł, reguły możliwe do zainstalowania umożliwiają Arkusze Google automatyczne uruchamianie funkcji po wystąpieniu określonego zdarzenia. Zainstalowane reguły są bardziej elastyczne niż proste i obsługują te zdarzenia: otwarcie, edycja, zmiana, przesłanie formularza i określenie czasu (zegar).