Arkusze Google to potężne narzędzie do obsługi arkuszy kalkulacyjnych w chmurze, które pozwala robić prawie wszystko, co można zrobić w programie Microsoft Excel. Ale prawdziwą potęgą Arkuszy Google jest dołączona do niej funkcja Google Scripting.
Skrypty Google Apps to narzędzie do tworzenia skryptów w tle, które działa nie tylko w Arkuszach Google, ale także Dokumenty Google, Gmail , Google Analytics i prawie każda inna usługa chmurowa Google. Pozwala zautomatyzować te poszczególne aplikacje i zintegrować każdą z nich.
W tym artykule dowiesz się, jak zacząć korzystać ze skryptów Google Apps, tworzenia podstawowego skryptu w Arkuszach Google do odczytu i zapisu danych komórki oraz najskuteczniejszych zaawansowanych Arkuszy Google funkcje skryptu.
Jak utworzyć skrypt Google Apps
Możesz teraz rozpocząć tworzenie pierwszego skryptu Google Apps z poziomu Arkuszy Google.
Aby to zrobić, wybierz z menu Narzędzia, a następnie Edytor skryptów.
Otwiera to okno edytora skryptów i domyślnie działa funkcja o nazwie myfunction (). Tutaj możesz utworzyć i przetestować swój skrypt Google.
In_content_1 all: [300x250] / dfp: [640x360]->Aby spróbować, spróbuj utworzyć funkcję skryptu Arkuszy Google, która odczyta dane z jednej komórki, wykona na niej obliczenia i wyśle ilość danych do innej komórki.
Funkcja pobierania danych z komórki to funkcje getRange ()i getValue (). Możesz zidentyfikować komórkę według wiersza i kolumny. Jeśli więc masz wartość w wierszu 2 i kolumnie 1 (kolumna A), pierwsza część skryptu będzie wyglądać następująco:
function myFunction() {var sheet = SpreadsheetApp.getActiveSheet(); var row = 2; var col = 1; var data = sheet.getRange(row, col).getValue(); }
Zapisuje wartość z tego komórka w zmiennej dane. Możesz wykonać obliczenia na danych, a następnie zapisać te dane w innej komórce. Tak więc ostatnią częścią tej funkcji będzie:
var results = data * 100;sheet.getRange(row, col+1).setValue(results); }
Po zakończeniu pisania funkcji wybierz ikonę dysku, aby zapisać.
Przy pierwszym uruchomieniu nowa funkcja skryptu Arkuszy Google, taka jak ta (wybierając ikonę uruchamiania), musisz podać Autoryzację dla skryptu do uruchomienia na Twoim koncie Google.
Zezwól na kontynuowanie uprawnień. Po uruchomieniu skryptu zobaczysz, że skrypt zapisał wyniki obliczeń do komórki docelowej.
Teraz, gdy wiesz, jak napisać podstawową funkcję skryptu Google Apps, przyjrzyjmy się bardziej zaawansowanym funkcjom.
Użyj getValues do załadowania tablic
Możesz przenieść koncepcję wykonywania obliczeń na danych w arkuszu kalkulacyjnym za pomocą skryptów na nowy poziom, używając tablic. Jeśli załadujesz zmienną w skrypcie Google Apps przy użyciu getValues, zmienna będzie tablicą, która może ładować wiele wartości z arkusza.
function myFunction() {var sheet = SpreadsheetApp.getActiveSheet(); var data = sheet.getDataRange().getValues();
Zmienna danych jest wielowymiarowa tablica przechowująca wszystkie dane z arkusza. Aby wykonać obliczenia na danych, użyj pętli for. Licznik pętli for będzie działał przez każdy wiersz, a kolumna pozostanie stała, w oparciu o kolumnę, w której chcesz pobrać dane.
W naszym przykładowym arkuszu kalkulacyjnym możesz wykonać obliczenia dla trzech wierszy danych w następujący sposób.
for (var i = 1; i < data.length; i++) {var result = data[i][0] * 100; sheet.getRange(i+1, 2).setValue(result); } }
Zapisz i uruchom ten skrypt, tak jak powyżej. Zobaczysz, że wszystkie wyniki są wypełnione w kolumnie 2 w arkuszu kalkulacyjnym.
Zauważysz, że odwołanie do komórki i wiersza w zmiennej tablicowej jest inne niż w przypadku funkcji getRange.
dane [i] [0]odnoszą się do wymiarów tablicy, gdzie pierwszym wymiarem jest rząd, a drugim kolumna. Oba zaczynają się od zera.
getRange (i + 1, 2)odnosi się do drugiego wiersza, gdy i = 1 (ponieważ wiersz 1 jest nagłówkiem), a 2 oznacza druga kolumna, w której przechowywane są wyniki.
Użyj appendRow do zapisywania wyników
Co zrobić, jeśli masz arkusz kalkulacyjny, w którym chcesz zapisać dane w nowym wiersz zamiast nowej kolumny?
Można to łatwo zrobić za pomocą funkcji appendRow. Ta funkcja nie przeszkadza żadnym istniejącym danym w arkuszu. Po prostu doda nowy wiersz do istniejącego arkusza.
Na przykład utwórz funkcję, która będzie liczyć od 1 do 10 i pokaże licznik z wielokrotnością 2 w Licznikucolumn.
Ta funkcja wyglądałaby następująco:
function myFunction() {var sheet = SpreadsheetApp.getActiveSheet(); for (var i = 1; i<11; i++) { var result = i * 2; sheet.appendRow([i,result]); } }
Oto wyniki działania tej funkcji.