Erweitern von Google-Tabellen

Mit Google Apps Script können Sie in Google Tabellen neue und coole Dinge tun. Mit Apps Script können Sie Google Tabellen benutzerdefinierte Menüs, Dialogfelder und Seitenleisten hinzufügen. Außerdem können Sie benutzerdefinierte Funktionen für Google Tabellen schreiben und Google Tabellen in andere Google-Dienste wie Google Kalender, Google Drive und Gmail einbinden.

In den meisten für Google Tabellen entwickelten Skripts werden Arrays so bearbeitet, dass sie mit den Zellen, Zeilen und Spalten in einer Tabelle interagieren. Wenn Sie mit Arrays in JavaScript nicht vertraut sind, bietet Codecademy ein hervorragendes Trainingsmodul für Arrays. Hinweis: Dieser Kurs wurde nicht von Google entwickelt und ist nicht in Verbindung mit Google.

Eine kurze Einführung zur Verwendung von Apps Script mit Google Tabellen finden Sie in der 5-minütigen Kurzanleitung für Makros, Menüs und benutzerdefinierte Funktionen.

Erste Schritte

Apps Script enthält spezielle APIs, mit denen Sie Google-Tabellen programmatisch erstellen, lesen und bearbeiten können. Apps Script kann auf zwei grundlegende Arten mit Google Tabellen interagieren: Jedes Skript kann eine Tabelle erstellen oder ändern, wenn der Nutzer des Skripts die entsprechenden Berechtigungen für die Tabelle hat. Ein Skript kann auch an eine Tabelle gebunden werden. Dadurch erhält das Skript spezielle Funktionen, um die Benutzeroberfläche zu ändern oder beim Öffnen der Tabelle zu antworten. Um ein gebundenes Skript zu erstellen, wählen Sie in Google Tabellen Erweiterungen > Apps Script aus.

Der Tabellenkalkulationsdienst behandelt Google Tabellen als Raster, das mit zweidimensionalen Arrays arbeitet. Um die Daten aus der Tabellenkalkulation abzurufen, müssen Sie Zugriff auf die Tabellenkalkulation erhalten, in der die Daten gespeichert sind, den Bereich in der Tabelle abrufen, der die Daten enthält, und dann die Werte der Zellen abrufen. Apps Script erleichtert den Zugriff auf die Daten, indem es strukturierte Daten in der Tabelle liest und JavaScript-Objekte für sie erstellt.

Daten lesen

Angenommen, Sie speichern eine Liste mit Produktnamen und Produktnummern in einer Tabelle, wie in der folgenden Abbildung dargestellt.

Das folgende Beispiel zeigt, wie die Produktnamen und Produktnummern abgerufen und protokolliert werden.

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]);
  }
}

Logs ansehen

Klicken Sie oben im Skripteditor auf Ausführungsprotokoll, um die protokollierten Daten aufzurufen.

Daten schreiben

Fügen Sie den folgenden Code am Ende des Skripts hinzu, um Daten wie einen neuen Produktnamen und eine neue Produktnummer in der Tabelle zu speichern.

function addProduct() {
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow(['Cotton Sweatshirt XL', 'css004']);
}

Mit dem Code oben wird unten in der Tabelle eine neue Zeile mit den angegebenen Werten angehängt. Wenn Sie diese Funktion ausführen, werden Sie sehen, dass der Tabelle eine neue Zeile hinzugefügt wird.

Benutzerdefinierte Menüs und Benutzeroberflächen

Sie können Google Tabellen anpassen, indem Sie benutzerdefinierte Menüs, Dialogfelder und Seitenleisten hinzufügen. Die Grundlagen zum Erstellen von Menüs finden Sie im Leitfaden zu Menüs. Informationen zum Anpassen des Inhalts eines Dialogfelds finden Sie im Leitfaden zum HTML-Dienst.

Sie können einem Bild oder einer Zeichnung in einer Tabelle auch eine Skriptfunktion hinzufügen. Die Funktion wird ausgeführt, wenn ein Nutzer auf das Bild oder die Zeichnung klickt. Weitere Informationen finden Sie unter Bilder und Zeichnungen in Google Tabellen.

Wenn Sie Ihre benutzerdefinierte Oberfläche als Teil eines Add-ons veröffentlichen möchten, folgen Sie dem Styleguide, um dem Stil und dem Layout des Google Tabellen-Editors zu entsprechen.

Mit Google Formulare verbinden

Mit Apps Script können Sie Google Formulare über Google Formulare- und Tabellendienste mit Google Tabellen verknüpfen. Mit dieser Funktion kann anhand von Daten in einer Tabelle automatisch ein Google-Formular erstellt werden. Mit Apps Script können Sie auch Trigger wie onFormSubmit verwenden, um eine bestimmte Aktion auszuführen, nachdem ein Nutzer auf das Formular geantwortet hat. Weitere Informationen zum Verbinden von Google Tabellen mit Google Formulare finden Sie in der 5-minütigen Kurzanleitung Antworten für Google Formulare verwalten.

Formatierung

Die Klasse Range enthält Methoden wie setBackground(color), um auf das Format einer Zelle oder eines Zellenbereichs zuzugreifen und dieses zu ändern. Das folgende Beispiel zeigt, wie Sie den Schriftstil eines Bereichs festlegen können:

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');
}

Datenvalidierung

Mit Apps Script können Sie auf vorhandene Datenvalidierungsregeln in Google Tabellen zugreifen oder neue Regeln erstellen. Das folgende Beispiel zeigt, wie Sie eine Datenvalidierungsregel festlegen, die nur Zahlen zwischen 1 und 100 für eine Zelle zulässt.

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);
}

Weitere Informationen zum Arbeiten mit Datenvalidierungsregeln finden Sie unter SpreadsheetApp.newDataValidation(), DataValidationBuilder und Range.setDataValidation(rule).

Charts

Mit Apps Script können Sie Diagramme in eine Tabelle einbetten, die die Daten in einem bestimmten Bereich darstellen. Im folgenden Beispiel wird ein eingebettetes Balkendiagramm generiert. Dabei wird davon ausgegangen, dass sich in den Zellen A1:B15 diagrammfähige Daten befinden:

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);
}

Weitere Informationen zum Einbetten eines Diagramms in Ihre Tabelle finden Sie unter EmbeddedChart und mit bestimmten Diagrammerstellern wie EmbeddedPieChartBuilder.

Benutzerdefinierte Funktionen in Google Tabellen

Eine benutzerdefinierte Funktion ähnelt einer integrierten Tabellenfunktion wie =SUM(A1:A5), mit dem Unterschied, dass Sie das Verhalten der Funktionen mit Apps Script definieren. Sie könnten beispielsweise die benutzerdefinierte Funktion in2mm() erstellen, die einen Wert von Zoll in Millimeter umwandelt, und diese Formel dann in Ihrer Tabelle verwenden, indem Sie =in2mm(A1) oder =in2mm(10) in eine Zelle eingeben.

Weitere Informationen zu benutzerdefinierten Funktionen finden Sie in der fünfminütigen Kurzanleitung zu Menüs und benutzerdefinierten Funktionen oder in der ausführlicheren Anleitung zu benutzerdefinierten Funktionen.

Makros

Makros sind eine weitere Möglichkeit, Apps Script-Code über die Benutzeroberfläche von Google Tabellen auszuführen. Im Gegensatz zu benutzerdefinierten Funktionen aktivieren Sie diese über das Tastaturkürzel oder über das Google Tabellen-Menü. Weitere Informationen finden Sie unter Google Tabellen-Makros.

Add-ons für Google Tabellen

Add-ons sind speziell gepackte Apps Script-Projekte, die in Google Tabellen ausgeführt werden und über den Add-on-Store für Google Tabellen installiert werden können. Wenn Sie ein Skript für Google Tabellen entwickelt haben und es für alle Nutzer freigeben möchten, können Sie es mit Apps Script als Add-on publish, damit andere Nutzer es aus dem Add-on-Store installieren können.

Trigger

Skripts, die an eine Google Tabellen-Datei gebunden sind, können einfache Trigger wie die Funktionen onOpen() und onEdit() verwenden, um automatisch zu reagieren, wenn ein Nutzer mit Bearbeitungszugriff auf die Tabelle diese öffnet oder bearbeitet.

Wie bei einfachen Triggern ermöglichen installierbare Trigger, dass Google Tabellen eine Funktion automatisch ausführt, wenn ein bestimmtes Ereignis eintritt. Installierbare Trigger bieten jedoch mehr Flexibilität als einfache Trigger und unterstützen die folgenden Ereignisse: öffnen, bearbeiten, ändern, Formular senden und zeitgesteuert (Uhr).