Google Apps Script umożliwia tworzenie nowych i ciekawych funkcji w Arkuszach Google. Za pomocą Apps Script możesz dodawać do Arkuszy Google niestandardowe menu, okna i paski boczne. Umożliwia też zapisywanie funkcji niestandardowych w Arkuszach oraz integrację z innymi usługami Google, takimi jak Kalendarz, Dysk czy Gmail.
Większość skryptów zaprojektowanych dla Arkuszy Google manipuluje tablicami, aby wchodzić w interakcje z komórkami, wierszami i kolumnami w arkuszu kalkulacyjnym. Codecademy oferuje świetny moduł szkoleniowy dla tablic, jeśli nie znasz jeszcze tablic w JavaScriptie. (Kurs nie został stworzony przez Google ani nie jest z nim powiązany).
Aby uzyskać krótkie informacje o korzystaniu z Apps Script w Arkuszach Google, zapoznaj się z 5-minutowym przewodnikiem po makrach, menu i funkcjach niestandardowych.
Pierwsze kroki
Apps Script zawiera specjalne interfejsy API, które umożliwiają programowe tworzenie, odczytywanie i edytowanie Arkuszy Google. Skrypty Apps Script mogą wchodzić w interakcję z Arkuszami Google na 2 sposoby: każdy skrypt może utworzyć lub zmodyfikować arkusz kalkulacyjny, jeśli użytkownik ma odpowiednie uprawnienia do arkusza kalkulacyjnego, a skrypt może być powiązany z arkuszem kalkulacyjnym, co zapewnia specjalne uprawnienia do modyfikowania interfejsu lub reagowania po otwarciu arkusza. Aby utworzyć powiązany skrypt, wybierz w Arkuszach Google Rozszerzenia > Apps Script.
Usługa arkuszy kalkulacyjnych traktuje Arkusze Google jako siatkę i korzysta z tablicy dwuwymiarowych. Aby pobrać dane z arkusza kalkulacyjnego, musisz uzyskać dostęp do arkusza kalkulacyjnego, w którym są przechowywane te dane, określić zakres w arkuszu kalkulacyjnym, w którym znajdują się dane, a następnie pobrać wartości komórek. Google Apps Script zapewnia dostęp do danych, odczytując uporządkowane dane w arkuszu kalkulacyjnym i tworząc dla nich obiekty JavaScript.
Odczytywanie danych
Załóżmy, że masz listę nazw produktów i ich numerów zapisanych w arkuszu kalkulacyjnym, jak pokazano na ilustracji poniżej.
Przykład poniżej pokazuje, jak pobrać i zapisać 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świetl logi
Aby wyświetlić zarejestrowane dane, u góry edytora skryptów kliknij Dziennik wykonywania.
Zapisywanie danych
Aby przechowywać w arkuszu kalkulacyjnym takie dane jak nazwa i numer nowej usługi, dodaj na końcu skryptu ten kod:
function addProduct() {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow(['Cotton Sweatshirt XL', 'css004']);
}
Powyższy kod dołącza na dole arkusza nowy wiersz z określonymi wartościami. Jeśli uruchomisz tę funkcję, do arkusza kalkulacyjnego zostanie dodany nowy wiersz.
Niestandardowe menu i interfejsy
Arkusze Google możesz dostosowywać, dodając niestandardowe menu, okna dialogowe i paski boczne. Podstawowe informacje o tworzeniu menu znajdziesz w przewodniku po menu. Informacje o dostosowywaniu zawartości okna dialogowego znajdziesz w przewodniku po usłudze HTML.
Możesz też dołączyć do skryptu lub obrazu w arkuszu kalkulacyjnym funkcję skryptu, która zostanie uruchomiona, gdy użytkownik kliknie obraz lub rysunek. Więcej informacji znajdziesz w artykule Obrazy i Rysunki w Arkuszach Google.
Jeśli chcesz opublikować interfejs niestandardowy w ramach 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ą Formularzy i Arkuszy. Ta funkcja może automatycznie tworzyć formularze Google na podstawie danych z arkusza kalkulacyjnego.
Apps Script umożliwia także używanie reguł, takich jak onFormSubmit
, do wykonywania określonych działań po wypełnieniu formularza przez użytkownika.
Aby dowiedzieć się więcej o łączeniu Arkuszy Google z Formularzami Google, zapoznaj się z 5-minutowym krótkim wprowadzeniem Zarządzanie odpowiedziami w Formularzach Google.
Formatowanie
Klasa Range
obejmuje metody takie jak setBackground(color)
, które umożliwiają dostęp do formatu komórki lub zakresu komórek oraz ich modyfikowanie. Poniższy przykład pokazuje, 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 pozwala uzyskać dostęp do istniejących reguł weryfikacji danych w Arkuszach Google lub tworzyć nowe reguły. Poniższy przykład pokazuje, jak ustawić regułę sprawdzania poprawności danych, która zezwala tylko na komórki 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)
.
Wykresy
Apps Script umożliwia umieszczanie wykresów w arkuszu kalkulacyjnym przedstawiającym dane z określonego zakresu. Ten przykład generuje osadzony wykres słupkowy, zakładając, że w komórkach A1:B15
są dostępne dane z 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 umieszczaniu wykresu w arkuszu kalkulacyjnym znajdziesz na stronie EmbeddedChart
i w 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 tą różnicą, że definiujesz ich działanie 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ć formuły w arkuszu kalkulacyjnym, wpisując =in2mm(A1)
lub =in2mm(10)
w komórce.
Więcej informacji o funkcjach niestandardowych znajdziesz w Krótkim przewodniku dotyczącym menu i funkcji niestandardowych. Możesz też zapoznać się ze szczegółowym przewodnikiem po funkcjach niestandardowych.
Makra
Makra to inny sposób wykonywania kodu Apps Script w interfejsie Arkuszy Google. W przeciwieństwie do funkcji niestandardowych możesz aktywować je, używając skrótu klawiszowego lub menu Menu Google. Więcej informacji znajdziesz w artykule Makra Arkuszy Google.
Dodatki do Arkuszy Google
Dodatki to specjalne pakiety Apps Script, które działają w Arkuszach Google i można je zainstalować ze sklepu z dodatkami do Arkuszy Google. Jeśli masz własny skrypt w Arkuszach Google i chcesz go udostępnić światu, Apps Script umożliwia opublikowanie go jako dodatku, dzięki czemu inni użytkownicy będą mogli go zainstalować ze sklepu z dodatkami.
Aktywatory
Skrypty powiązane z plikiem w Arkuszach Google mogą używać prostych reguł, takich jak funkcje onOpen()
i onEdit()
, aby reagować automatycznie, gdy użytkownik z dostępem do edycji będzie mógł otworzyć lub edytować arkusz kalkulacyjny.
Tak jak w przypadku prostych reguł, reguły do zainstalowania pozwalają na automatyczne uruchomienie funkcji Arkuszy Google po wystąpieniu określonego zdarzenia. Reguły, które można zainstalować, zapewniają jednak większą elastyczność niż proste reguły oraz obsługują następujące zdarzenia: otwarcie, edycja, zmiana, przesłanie formularza i ograniczenie czasu.