Rozszerzenie Arkuszy Google

Google Apps Script umożliwia wykonywanie nowych i fajnych zadań w Arkuszach Google. Za pomocą Apps Script możesz dodawać do Arkuszy Google niestandardowe menu, okna i paski boczne. Pozwala też pisać funkcje niestandardowe w Arkuszach oraz integrować Arkusze z innymi usługami Google, takimi jak Kalendarz, Dysk czy Gmail.

Większość skryptów przeznaczonych do Arkuszy Google manipuluje tablicami, aby wchodzić w interakcje z komórkami, wierszami i kolumnami w arkuszu kalkulacyjnym. Jeśli nie znasz tablic w JavaScript, Codecademy oferuje świetny moduł szkoleniowy na ten temat. (Ten kurs nie został opracowany przez Google i nie jest z nim powiązany).

Krótkie wprowadzenie do korzystania z Apps Script w Arkuszach Google znajdziesz w 5-minutowym samouczku na temat makr, menu i funkcji niestandardowych.

Rozpocznij

Apps Script zawiera specjalne interfejsy API, które umożliwiają tworzenie, odczytywanie i edytowanie arkuszy kalkulacyjnych Google w sposób programowy. Apps Script może współpracować z Arkuszami Google na 2 sposoby: każdy skrypt może tworzyć lub modyfikować arkusz kalkulacyjny, jeśli użytkownik skryptu ma odpowiednie uprawnienia do tego arkusza. Skrypt może też zostać powiązany z arkuszem, co daje mu specjalne możliwości modyfikowania interfejsu użytkownika lub reagowania na otwarcie arkusza. Aby utworzyć powiązany skrypt, w Arkuszach Google kliknij Rozszerzenia > Apps Script.

Usługa arkuszy kalkulacyjnych traktuje Arkusze Google jako siatkę, która działa z tablicami dwuwymiarowymi. Aby pobrać dane z arkusza kalkulacyjnego, musisz uzyskać dostęp do arkusza, w którym są one przechowywane, określić zakres komórek w arkuszu, w którym się znajdują, a następnie pobrać wartości komórek. Apps Script ułatwia dostęp do danych, odczytując uporządkowane dane w arkuszu kalkulacyjnym i tworząc dla nich obiekty JavaScript.

Czytanie danych

Załóżmy, że masz listę nazw i numerów produktów przechowywaną w arkuszu kalkulacyjnym, jak na obrazku poniżej.

Przykład poniżej pokazuje, jak pobierać i rejestrować nazwy i numery produktów.

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świetl logi

Aby wyświetlić zapisane dane, u góry edytora skryptu kliknij Dziennik wykonania.

Zapisywanie danych

Aby zapisać dane, takie jak nowa nazwa i 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 nowy wiersz u dołu arkusza kalkulacyjnego z określonymi wartościami. Po uruchomieniu tej funkcji do arkusza zostanie dodany nowy wiersz.

Menu i interfejsy niestandardowe

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

Funkcję skryptu możesz też dołączyć do obrazu lub rysunku w arkuszu kalkulacyjnym. Funkcja zostanie wykonana, gdy użytkownik kliknie obraz lub rysunek. Więcej informacji znajdziesz w artykule Obrazy i rysunki w Arkuszach Google.

Jeśli planujesz opublikować interfejs niestandardowy jako część dodatku, postępuj zgodnie z przepisami zawartymi w przewodniku dotyczącym spójności ze stylem i układem edytora Arkuszy Google.

Łączenie z Formularzami Google

Apps Script umożliwia połączenie Formularzy Google z Arkuszami Google za pomocą usług Formularzy i arkuszy kalkulacyjnych. Ta funkcja może automatycznie tworzyć formularze Google na podstawie danych w arkuszu kalkulacyjnym. Apps Script umożliwia też używanie wyzwalaczy, takich jak onFormSubmit, aby wykonywać określone działania po tym, jak użytkownik wypełni formularz. Aby dowiedzieć się więcej o połączaniu Arkuszy Google z Formularzami Google, obejrzyj 5-minutowy film instruktażowy Zarządzanie odpowiedziami w Formularzach Google.

Format

Klasa Range zawiera metody takie jak setBackground(color), które umożliwiają dostęp do formatu komórki lub zakresu komórek i jego modyfikowanie. Z tego przykładu dowiesz się, jak ustawić styl czcionki dla zakresu:

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

Dzięki Apps Script możesz uzyskać dostęp do istniejących reguł sprawdzania poprawności danych w Arkuszach Google lub utworzyć nowe reguły. Na przykład poniższy przykład pokazuje, jak ustawić regułę sprawdzania poprawności danych, która zezwala na wpisywanie w komórce tylko liczb 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 regułach sprawdzania poprawności danych znajdziesz w artykułach SpreadsheetApp.newDataValidation(), DataValidationBuilderRange.setDataValidation(rule).

Wykresy

Dzięki Apps Script możesz umieszczać w arkuszu kalkulacyjnym wykresy przedstawiające dane z określonego zakresu. W tym przykładzie generowany jest wbudowany wykres słupkowy, o ile w komórkach A1:B15 masz dane, które można przedstawić w postaci wykresu:

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 osadzaniu wykresu w arkuszu kalkulacyjnym znajdziesz w artykule EmbeddedChart oraz w specjalnych kreatorach wykresów, takich jak EmbeddedPieChartBuilder.

Funkcje niestandardowe w Arkuszach Google

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

Aby dowiedzieć się więcej o funkcjach niestandardowych, skorzystaj z 5-minutowego samouczka na temat menu i funkcji niestandardowych lub zapoznaj się ze szczegółowym przewodnikiem po funkcjach niestandardowych.

Makra

Makra to inny sposób wykonywania kodu Apps Script z poziomu interfejsu Arkuszy Google. W przeciwieństwie do funkcji niestandardowych aktywujesz je za pomocą skrótu klawiszowego lub menu Arkuszy Google. Więcej informacji znajdziesz w artykule Makra w Arkuszach Google.

Dodatki do Arkuszy Google

Dodatki to specjalnie zapakowane projekty Apps Script, które działają w Arkuszach Google i można je zainstalować ze sklepu z dodatkami do Arkuszy Google. Jeśli masz skrypt opracowany na potrzeby Arkuszy Google i chcesz udostępnić go innym, możesz go opublikować jako dodatek, aby inni użytkownicy mogli go zainstalować ze sklepu z dodatkami.

Reguły

Scenariusze powiązane z plikiem Arkuszy Google mogą używać prostych wyzwalaczy, takich jak funkcje onOpen() i onEdit(), aby automatycznie reagować, gdy użytkownik z dostępem do edycji otworzy lub zmodyfikuje arkusz kalkulacyjny.

Podobnie jak proste reguły, reguły instalowane umożliwiają Arkuszom Google automatyczne wykonywanie funkcji po wystąpieniu określonego zdarzenia. Jednak wyzwalacze instalowane zapewniają większą elastyczność niż proste wyzwalacze i obsługują te zdarzenia: otwarcie, edytowanie, zmianę, przesłanie formularza i czas.