Erweitern von Google-Tabellen

Mit Google Apps Script können Sie mit 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 erstellen und Google Tabellen in andere Google-Dienste wie Google Kalender, Google Drive und Gmail einbinden.

Die meisten Scripts für Google Tabellen bearbeiten Arrays, um mit den Zellen, Zeilen und Spalten in einer Tabelle zu 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 mit Google verbunden.

Eine kurze Einführung in die Verwendung von Apps Script in Google Tabellen finden Sie in der 5-minütigen Kurzanleitung zu Makros, Menüs und benutzerdefinierten Funktionen.

Jetzt starten

Apps Script enthält spezielle APIs, mit denen Sie Google-Tabellen programmatisch erstellen, lesen und bearbeiten können. Google Apps Script kann auf zwei Arten mit Google Tabellen interagieren: Jedes Script kann eine Tabelle erstellen oder ändern, wenn der Nutzer des Scripts die entsprechenden Berechtigungen für die Tabelle hat. Ein Script kann auch an eine Tabelle gebunden werden, wodurch es spezielle Funktionen erhält, um die Benutzeroberfläche zu ändern oder zu reagieren, wenn die Tabelle geöffnet wird. Wenn Sie ein verknüpftes Script erstellen möchten, wählen Sie in Google Tabellen Erweiterungen > Apps Script aus.

Der Tabellendienst behandelt Google Tabellen als Raster und arbeitet mit zweidimensionalen Arrays. Wenn Sie die Daten aus der Tabelle abrufen möchten, müssen Sie Zugriff auf die Tabelle erhalten, in der die Daten gespeichert sind, den Bereich in der Tabelle mit den Daten abrufen und dann die Werte der Zellen abrufen. Apps Script erleichtert den Zugriff auf die Daten, indem strukturierte Daten in der Tabelle gelesen und JavaScript-Objekte dafür erstellt werden.

Daten lesen

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

Im folgenden Beispiel wird gezeigt, wie die Produktnamen und ‑nummern 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

Wenn Sie sich die protokollierten Daten ansehen möchten, klicken Sie oben im Script-Editor auf Ausführungslog.

Daten schreiben

Wenn Sie Daten wie einen neuen Produktnamen und eine neue Produktnummer in der Tabelle speichern möchten, fügen Sie am Ende des Scripts den folgenden Code ein.

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 angefügt. Wenn Sie diese Funktion ausführen, wird der Tabelle eine neue Zeile hinzugefügt.

Benutzerdefinierte Menüs und Benutzeroberflächen

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

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

Wenn Sie Ihre benutzerdefinierte Benutzeroberfläche als Teil eines Add-ons veröffentlichen möchten, halten Sie sich an den Stilguide, damit die Oberfläche mit dem Stil und Layout des Google Tabellen-Editors übereinstimmt.

Verbindung zu Google Formulare herstellen

Mit Apps Script können Sie Google Formulare über die Dienste Formulare und Tabelle mit Google Tabellen verknüpfen. Mit dieser Funktion können Sie automatisch ein Google-Formular auf Grundlage der Daten in einer Tabelle erstellen. Mit Apps Script können Sie auch Trigger wie onFormSubmit verwenden, um eine bestimmte Aktion auszuführen, nachdem ein Nutzer das Formular ausgefüllt 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 bietet Methoden wie setBackground(color), mit denen Sie auf das Format einer Zelle oder eines Zellenbereichs zugreifen und es ändern können. Im folgenden Beispiel wird gezeigt, wie Sie den Schriftstil eines Bereichs festlegen:

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 Regeln zur Datenvalidierung in Google Tabellen zugreifen oder neue Regeln erstellen. Im folgenden Beispiel wird beispielsweise gezeigt, wie Sie eine Datenvalidierungsregel festlegen, die in einer Zelle nur Zahlen zwischen 1 und 100 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 zur Arbeit mit Regeln zur Datenvalidierung finden Sie unter SpreadsheetApp.newDataValidation(), DataValidationBuilder und Range.setDataValidation(rule).

Diagramme

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, vorausgesetzt, Sie haben in den Zellen A1:B15 Diagrammdaten:

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 von Diagrammen in Ihre Tabelle finden Sie unter EmbeddedChart und in den jeweiligen Diagramm-Tools 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 Funktion mit Apps Script definieren. Sie können beispielsweise die benutzerdefinierte Funktion in2mm() erstellen, die einen Wert von Zoll in Millimeter umwandelt. Geben Sie dann =in2mm(A1) oder =in2mm(10) in eine Zelle ein, um die Formel in Ihrer Tabelle zu verwenden.

Weitere Informationen zu benutzerdefinierten Funktionen finden Sie im 5-minütigen Einstieg zu Menüs und benutzerdefinierten Funktionen oder im ausführlicheren Leitfaden 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 werden sie mit einer Tastenkombination oder über das Google Tabellen-Menü aktiviert. Weitere Informationen finden Sie unter Makros in Google Tabellen.

Add-ons für Google Tabellen

Add-ons sind speziell verpackte Apps Script-Projekte, die in Google Tabellen ausgeführt werden und über den Add-on-Shop von Google Tabellen installiert werden können. Wenn Sie ein Script für Google Tabellen entwickelt haben und es mit anderen teilen möchten, können Sie es mit Apps Script als Add-on veröffentlichen, damit andere Nutzer es im Add-on-Shop installieren können.

Trigger

Scripts, 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 die Tabelle öffnet oder bearbeitet.

Wie bei einfachen Triggern können Sie mit installierbaren Triggern in Google Tabellen eine Funktion automatisch ausführen lassen, wenn ein bestimmtes Ereignis eintritt. Installierbare Trigger bieten jedoch mehr Flexibilität als einfache Trigger und unterstützen die folgenden Ereignisse: Öffnen, Bearbeiten, Ändern, Senden von Formularen und zeitgesteuert (Uhr).