Haben Sie schon einmal davon gehört, Skripte in Google Spreadsheets zu schreiben? Ja, Sie haben richtig gelesen, Sie können tatsächlich Skripte schreiben, um die Anwendung zu erweitern und zu gestalten, indem Sie eines der leistungsstarken Tools von Google verwenden:

Google Apps Script.

Google Apps Script ist eine cloudbasierte JavaScript-Skriptsprache zum Erweitern der Funktionalität von Google Apps und zum Erstellen einfacher Cloud-basierter Anwendungen. Sie können sich wiederholende Aufgaben in Google Tabellen automatisieren, genau wie in Microsoft Excel mit VBA.

Es gibt zwei Arten von Skripts, welche Sie in Google nutzen können: 

  • Standalone scripts

Ein eigenständiges Skript ist jedes Skript, das nicht an eine Google Sheets-, Docs-, Slides- oder Forms-Datei oder Google Seite gebunden ist. Diese Skripte erscheinen unter Ihren Dateien in Google Drive.

  • Bound scripts

Ein Bound Skript ist an eine Google Sheets-, Docs-, Slides- oder Forms-Datei gebunden, wenn es aus diesem Dokument erstellt wurde und nicht als eigenständiges Skript. Sie führen bestimmte Aktionen direkt für diese bestimmte Datei aus. Die Datei, an die ein gebundenes Skript angehängt ist, wird als „Container“ bezeichnet.

In diesem Artikel fokussieren wir uns auf die „bound scripts„.

 

Get started

Um zu starten, gehen Sie auf die Seite sheets.google.com und erstellen Sie dort eine neue Tabelle. Unter dem Menüpunkt “ Tools “ wählen Sie bitte “ Skripteditor „

Dies öffnet eine neue Seite: den Skripteditor.

Jetzt ist es an der Zeit, ein wenig Code zu schreiben. Wir werden 3 grundlegende Konzepte behandeln – einfaches Lesen und Schreiben in Zellen, bedingte Anweisungen und Schleifen.

Wir haben eine Google-Tabelle erstellt, die Sie möglicherweise als Referenz für die folgenden Beispiele benötigen. Sie können diese Blätter und Daten in Ihre eigene Tabelle kopieren. Die Skripte finden Sie auch auf dem Blatt „Basisskripte“.

Link: https://docs.google.com/spreadsheets/d/1THYOqss2B-mmv3W0rWbH93domB_k-kuBXyXIN9qz6uY/edit?usp=sharing

Um das Skript auszuführen, wählen Sie in der Dropdown-Liste den Funktionsnamen aus, den Sie ausführen möchten, bevor Sie auf die Schaltfläche Ausführen klicken.

Lesen und Schreiben in Zellen

Lassen Sie uns die Daten im Blatt Datasheet_Temp mit einem Google-Skript anhängen.

Im folgenden Beispiel werden wir Daten in Zeile 7 und Zeile 8 mit zwei verschiedenen Ansätzen einfügen.

In den Zeilen 9-11 des Skripteditors: Für das Einfügen von Daten in Zeile 7 von Datasheet_Temp verwenden wir die A1-Schreibweise. Spalten werden als Buchstaben dargestellt und Zeilen als Zahlen.

In Zeile 14-16 des Skripteditors: Einfügen von Daten in Zeile 8 von Datasheet_Temp , stellen wir den Spalten- und Zeilenindex als Koordinaten bereit. Die Spalten- und Zeilenindizierung beginnt bei 1.

Nach der Ausführung dieses Skripts sollte das Datasheet_Temp-Blatt so aussehen:

Beachten Sie, dass wir uns im vorherigen Beispiel nur auf das aktive Blatt beziehen. Was ist, wenn Sie auf ein bestimmtes Blatt verweisen möchten? Wir zeigen Ihnen Optionen, wie Sie auf ein bestimmtes Blatt verweisen können, und zeigen Ihnen gleichzeitig, wie Sie den Wert aus einer Zelle lesen oder darauf zugreifen.

In diesem Beispiel speichern wir die Werte einfach in Zeile 2 des Quellblatts und fügen sie dann in ein anderes Blatt ein.

In Zeile 6 des Skripteditors verwenden wir die Methode getSheetByName(name), die das Blatt mit dem angegebenen Namen „Datasheet_Temp“ zurückgibt. Wenn mehrere Blätter denselben Namen haben, wird das am weitesten links stehende zurückgegeben. Null wird zurück gegeben, wenn kein Blatt mit dem angegebenen Namen vorhanden ist.

In Zeile 7 des Skripteditors: Nehmen wir an, wir kennen den Namen des Blatts nicht, dann können wir mit einem Workaround getSheets()[index] verwenden, um ein bestimmtes Blatt über seinen Index zu referenzieren. getSheets() gibt das Array aller Blätter in der Tabelle zurück, und dann können wir auf das benötigte zugreifen, indem wir den Index angeben (Wenn Sie die Reihenfolge der Blätter kennen und würde dies funktionieren).

Für den Zugriff auf die Werte haben wir die Methode getValue() verwendet, um den Wert der angegebenen Zellen in den Zeilen 10-12 des Skripteditors zurückzugeben. Der Wert kann je nach Wert der Zelle vom Typ Number, Boolean, Date oder String sein.

Nach dem Ausführen des Skripts sollte das Blatt Datasheet_Temp2 so aussehen:

 

Bedingte Anweisungen

Bedingte Anweisungen werden verwendet, damit Ihr Programm nur dann etwas tut, wenn die Bedingung erfüllt ist. Es gibt verschiedene Arten von bedingten Anweisungen:

  • if Anweisung

Die IF-Anweisung prüft zunächst, ob eine von Ihnen angegebene Bedingung erfüllt ist. Wenn die Bedingung erfüllt ist, wird der Code in geschweiften Klammern { und } ausgeführt. Andernfalls wird es NICHT ausgeführt.

  • if-else Anweisung

Die IF-ELSE-Anweisung hat zwei Codeblöcke. Der IF-Block und der ELSE-Block. Der IF-Block wird ausgeführt, wenn die Bedingung erfüllt ist. Andernfalls wird der ELSE-Block ausgeführt.

  • if-else if Anweisung

Die if-else if-Anweisung kann verwendet werden, um eine Reihe von bedingten Anweisungen zu verketten. Es wird verwendet, um die Bedingungen in sequentieller Reihenfolge zu überprüfen. Wenn eine der Bedingungen zuerst zutrifft, führt der Compiler diese Anweisung aus. Es kommt dann aus dem bedingten Anweisungsblock.

Im folgenden Skript verwenden wir die if-else if-Bedingungsanweisung, um den Status der Daten in Zeile 2 in Datasheet_Temp zu bestimmen..

Nach dem Ausführen des Skripts sollte das Blatt Datasheet_temp Zeile 2 so aussehen:

 

Looping Through Cells

Eine Schleife ist ein Stück Code, das eine Reihe von Anweisungen mehrmals ausführt, und jede Ausführung wird als Iteration bezeichnet. Stellen Sie sich vor, wir haben Hunderte von Daten zu verarbeiten; Es ist ineffizient, für alle Daten denselben Code zu schreiben, deshalb verwenden wir eine Schleife.

Es gibt zwei gängige Arten von Schleifen in Google Apps Script.

  • For loop: Wird verwendet, um eine Reihe von Anweisungen eine bestimmte Anzahl von Malen auszuführen, normalerweise wenn wir die Anzahl der Iterationen im Voraus kennen, bevor die Schleife beginnt.

      For (initialization; condition; increment/decrement)

             {

                   //statement

             }

  • While loop: Wird verwendet, um eine Reihe von Anweisungen so lange auszuführen, wie eine Bedingung erfüllt ist. Eine While-Schleife wird in Situationen verwendet, in denen Sie die Anzahl der Iterationen im Voraus nicht kennen.

      While (condition)

                 {

                      //statement

                 }

Fügen wir eine Schleifenanweisung hinzu und ändern Sie ein wenig von unserem vorherigen Beispiel.

Im Blatt Datasheet_Temp führen wir eine Schleife von Zeile 2 bis Zeile 8 durch und bestimmen ihren Status basierend auf den vorherigen Bedingungen, die wir verwendet haben.

In Zeile 7 des Skripteditors definieren wir zunächst den Anfangswert unserer Variablen i, der dann als Zähler für die Iteration verwendet wird. Wir haben „2“ geliefert, weil wir mit Reihe 2 beginnen möchten.

Dann fügen wir die zu prüfende Bedingung hinzu. In diesem Fall prüfen wir, ob der Zähler kleiner oder gleich 8 ist, was die letzte Zeile (die Daten enthält) von Datasheet_Temp ist.

Zuletzt der Inkrementierungs-/Dekrementierungsausdruck (++ oder –). Wir haben den Operator ++ (Inkrement) verwendet, da wir wollten, dass er von Zeile 2 bis 8 inkrementiert wird.

Nach dem Ausführen des Skripts sollte das Blatt Datasheet_temp so aussehen:

Lassen Sie uns nun eine While-Schleife verwenden, um jede Zeile ab Zeile 2 zu durchlaufen, vorausgesetzt, wir wissen nicht, was die letzte Zeile ist, und wir sollen nur bis zur letzten Zeile durchlaufen, deren Status nicht leer ist. Dann ändern wir die Schriftfarbe in Grün, wenn der Status „Aktuell“ ist.

Die Statusspalte in Datasheet_Temp sieht nach der Ausführung des Skripts wie folgt aus:

 

In diesem Artikel haben wir behandelt, wie Sie auf Google App Scripts zugreifen, einfache Funktionen erstellen und die 3 Grundkonzepte kennen. Wir hoffen, Sie finden es nützlich. Google App Script ist eine leistungsstarke Plattform, auf der Sie viel tun und noch viel mehr lernen können.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.