Google Apps Script umożliwia wprowadzanie nowych, ciekawych funkcji w Arkuszach Google. Za pomocą Apps Script możesz dodawać do Arkuszy Google niestandardowe menu, okna dialogowe 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 interakcję z komórkami, wierszami i kolumnami w arkuszu kalkulacyjnym. Jeśli nie znasz się na tablicach w JavaScript, Codecademy oferuje świetny moduł treningowy do tablic. (kurs ten nie został stworzony przez Google i nie jest z nim powiązany).
Aby uzyskać krótkie wprowadzenie do używania Apps Script w Arkuszach Google, zapoznaj się z 5-minutowym krótkim wprowadzeniem do makr, menu i funkcji niestandardowych.
Rozpocznij
Apps Script zawiera specjalne interfejsy API, które umożliwiają programowe tworzenie, odczytywanie i edytowanie Arkuszy Google. Apps Script może wchodzić w interakcje z Arkuszami Google na 2 ogólne sposoby: każdy skrypt może utworzyć lub zmodyfikować arkusz kalkulacyjny, jeśli użytkownik skryptu ma odpowiednie uprawnienia. Skrypt można też powiązać z arkuszem kalkulacyjnym, co zapewnia mu specjalne uprawnienia do modyfikowania interfejsu użytkownika lub reagowania po otwarciu arkusza kalkulacyjnego. Aby utworzyć powiązany skrypt, w Arkuszach Google wybierz Rozszerzenia > Apps Script.
Usługa Arkuszy kalkulacyjnych traktuje Arkusze Google jako siatkę działającą z dwuwymiarowymi tablicami. Aby pobrać dane z arkusza kalkulacyjnego, musisz uzyskać dostęp do arkusza kalkulacyjnego, w którym są przechowywane, pobrać zakres w arkuszu kalkulacyjnym, a następnie pobrać wartości w komórkach. Apps Script ułatwia dostęp do danych dzięki odczytywaniu uporządkowanych danych w arkuszu kalkulacyjnym i tworzeniu dla nich obiektów JavaScript.
Odczyt danych
Załóżmy, że masz listę nazw i numerów produktów przechowywanych w arkuszu kalkulacyjnym, tak jak na ilustracji poniżej.
Przykład poniżej pokazuje, jak pobrać i zapisać nazwy oraz 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świetlanie logów
Aby wyświetlić zarejestrowane dane, u góry edytora skryptów kliknij Dziennik wykonywania.
Zapisuję dane
Aby zapisać w arkuszu dane, takie jak nowa nazwa produktu i numer produktu, 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. Jeśli uruchomisz tę funkcję, 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. Podstawy tworzenia menu znajdziesz w przewodniku po menu. Więcej informacji o dostosowywaniu zawartości okna dialogowego znajdziesz w przewodniku po usłudze HTML.
Możesz też dołączyć funkcję skryptu do obrazu lub rysunku w ramach arkusza kalkulacyjnego. 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ć swój interfejs niestandardowy jako część dodatku, 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 kalkulacyjnych. Ta funkcja
może automatycznie tworzyć Formularz Google na podstawie danych z arkusza kalkulacyjnego.
Apps Script umożliwia też używanie reguł, takich jak onFormSubmit
, do wykonywania określonych działań po wypełnieniu formularza przez użytkownika.
Więcej informacji o łączeniu Arkuszy Google z Formularzami Google znajdziesz w 5-minutowym krótkim wprowadzeniu Zarządzanie odpowiedziami w Formularzach Google.
Format
Klasa Range
udostępnia metody, takie jak setBackground(color)
, które umożliwiają dostęp do komórki lub zakresu komórek oraz modyfikowanie ich formatu. Poniższy przykład pokazuje, jak ustawić styl czcionki 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
Apps Script umożliwia dostęp do istniejących reguł weryfikacji danych w Arkuszach Google oraz tworzenie nowych. Z przykładu poniżej dowiesz się, jak skonfigurować regułę weryfikacji danych, która dopuszcza w komórce tylko liczby z zakresu 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 przedstawiających dane z określonego zakresu. Ten przykład generuje osadzony wykres słupkowy przy założeniu, ż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 wykresu w arkuszu kalkulacyjnym znajdziesz w artykule EmbeddedChart
i o 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)
, z tym że działanie funkcji 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órce.
Więcej informacji o funkcjach niestandardowych znajdziesz w 5-minutowym krótkim wprowadzeniu Menu i funkcje niestandardowe. Możesz też zapoznać się ze szczegółowym przewodnikiem po funkcjach niestandardowych.
Makra
Makra to kolejny sposób wykonywania kodu Apps Script w interfejsie 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 o makrach w Arkuszach Google.
Dodatki do Arkuszy Google
Dodatki to specjalnie spakowane projekty Apps Script, które działają w Arkuszach Google i można je instalować ze sklepu z dodatkami do Arkuszy Google. Jeśli masz przygotowany skrypt do Arkuszy Google i chcesz go udostępnić światu, możesz użyć Apps Script, aby 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 reguł, takich jak funkcje onOpen()
i onEdit()
, aby automatycznie odpowiadać, gdy użytkownik z uprawnieniami do edycji arkusza kalkulacyjnego otworzy lub edytuje arkusz.
Podobnie jak w przypadku prostych reguł, reguły instalacyjne pozwalają Arkusze Google automatycznie uruchamiać funkcję po wystąpieniu określonego zdarzenia. Aktywatory instalacyjne są jednak bardziej elastyczne niż proste reguły i obsługują te zdarzenia: otwarcie, edytowanie, zmiana, przesłanie formularza i wykorzystanie czasu (zegar).