Rozszerzenie Arkuszy Google

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

Większość skryptów przeznaczonych do Arkuszy Google manipuluje tablicami, aby wchodzić w interakcje z komórkami, wierszami i kolumnami arkusza kalkulacyjnego. Jeśli nie znasz tablic w JavaScript, Codecademy oferuje świetny moduł szkoleniowy dotyczący tablic. (Pamiętaj, że ten kurs nie został opracowany przez Google ani nie jest z nim powiązany).

Krótkie wprowadzenie do korzystania z Apps Script w Arkuszach Google znajdziesz w 5-minutowym przewodniku po makrach, menu i funkcjach niestandardowych.

Rozpocznij

Apps Script zawiera specjalne interfejsy API, które umożliwiają automatyczne tworzenie, odczytywanie i edytowanie arkuszy kalkulacyjnych Google. Apps Script może wchodzić w interakcje 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 arkusza, a skrypt może być też powiązany z arkuszem kalkulacyjnym, co daje mu specjalne możliwości zmiany interfejsu użytkownika lub reagowania na otwarcie arkusza. Aby utworzyć skrypt powiązany, w Arkuszach Google kliknij 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, w którym są przechowywane dane, uzyskać zakres w arkuszu, który zawiera dane, a następnie pobrać wartości komórek. Apps Script ułatwia dostęp do danych, odczytując dane strukturalne w arkuszu kalkulacyjnym i tworząc dla nich obiekty JavaScript.

Dane o czytaniu

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

Poniższy przykład pokazuje, jak pobrać i zarejestrować nazwy produktów 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świetl logi

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

Zapisywanie danych

Aby zapisać dane, np. nową nazwę produktu i numer w arkuszu kalkulacyjnym, dodaj na końcu skryptu ten kod:

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. Jeśli uruchomisz tę funkcję, do arkusza zostanie dodany nowy wiersz.

Menu niestandardowe i interfejsy użytkownika

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

Możesz też dołączyć funkcję skryptu 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ć niestandardowy interfejs jako dodatek, postępuj zgodnie z przewodnikiem po stylach, 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 Forms i Spreadsheet. Ta funkcja może automatycznie tworzyć Formularze Google na podstawie danych z arkusza kalkulacyjnego. Apps Script umożliwia też używanie wyzwalaczy, np.onFormSubmit, do wykonywania określonego działania po tym, jak użytkownik odpowie na formularz. Aby dowiedzieć się więcej o łączeniu Arkuszy Google z Formularzami Google, skorzystaj z 5-minutowego przewodnika Zarządzanie odpowiedziami w Formularzach Google.

Format

Klasa Range ma metody takie jak setBackground(color), które umożliwiają dostęp do formatu komórki lub zakresu komórek i jego modyfikowanie. 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ł sprawdzania poprawności danych w Arkuszach Google lub tworzenie nowych reguł. Na przykład poniższy kod pokazuje, jak ustawić regułę sprawdzania poprawności danych, która zezwala na wpisywanie w komórce tylko liczb 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 sprawdzania poprawności danych znajdziesz w artykułach SpreadsheetApp.newDataValidation(), DataValidationBuilder i Range.setDataValidation(rule).

Wykresy

Apps Script umożliwia osadzanie w arkuszu kalkulacyjnym wykresów przedstawiających dane z określonego zakresu. Poniższy przykład generuje osadzony wykres słupkowy, zakładając, że w komórkach A1:B15 znajdują się dane, które można przedstawić 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 osadzaniu wykresu w arkuszu kalkulacyjnym znajdziesz w artykule EmbeddedChart oraz w informacjach o konkretnych narzędziach do tworzenia 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 wyjątkiem, że zachowanie funkcji definiujesz za pomocą Apps Script. Możesz na przykład utworzyć funkcję niestandardową in2mm(), która przekształca 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.

Aby dowiedzieć się więcej o funkcjach niestandardowych, wypróbuj 5-minutowy przewodnik Menu i funkcje niestandardowe lub zapoznaj się z bardziej szczegółowym przewodnikiem po funkcjach niestandardowych.

Makra

Makra to kolejny sposób na wykonywanie kodu Apps Script z interfejsu Arkuszy Google. W przeciwieństwie do funkcji niestandardowych aktywujesz je za pomocą skrótu klawiszowego lub w menu Arkuszy Google. Więcej informacji znajdziesz w artykule Makra 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 zainstalować w sklepie z dodatkami do Arkuszy Google. Jeśli masz skrypt do Arkuszy Google i chcesz udostępnić go innym użytkownikom, Apps Script umożliwia opublikowanie skryptu jako dodatku, aby inni użytkownicy mogli go zainstalować ze sklepu z dodatkami.

Reguły

Skrypty powiązane z plikiem Arkuszy Google mogą używać prostych wyzwalaczy, takich jak funkcje onOpen() i onEdit(), aby automatycznie reagować, gdy użytkownik, który ma dostęp do edycji arkusza kalkulacyjnego, otworzy lub zmodyfikuje ten arkusz.

Podobnie jak proste reguły, reguły instalowane umożliwiają Arkuszom Google automatyczne uruchamianie funkcji po wystąpieniu określonego zdarzenia. Triggery instalowane są jednak bardziej elastyczne niż triggery proste i obsługują te zdarzenia: otwarcie, edycja, zmiana, przesłanie formularza i zdarzenia oparte na czasie (zegar).