Mit Google Apps Script können Sie neue und interessante Dinge mit Google Tabellen tun. Mit Apps Script können Sie benutzerdefinierte Menüs, Dialogfelder und Seitenleisten in Google Tabellen 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.
Die meisten für Google Sheets entwickelten Scripts bearbeiten Arrays, um mit den Zellen, Zeilen und Spalten in einer Tabelle zu interagieren. Wenn Sie sich mit Arrays in JavaScript nicht auskennen, bietet Codecademy ein gutes Trainingsmodul für Arrays. Dieser Kurs wurde nicht von Google entwickelt und steht auch nicht in Verbindung mit Google.
Eine kurze Einführung in die Verwendung von Apps Script mit Google Tabellen finden Sie in der 5‑Minuten-Kurzanleitung für Makros, Menüs und benutzerdefinierte Funktionen.
Jetzt starten
Apps Script umfasst spezielle APIs, mit denen Sie Google-Tabellen programmatisch erstellen, lesen und bearbeiten können. Apps Script kann auf zwei 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. Außerdem kann ein Skript an eine Tabelle gebunden werden. Dadurch erhält das Skript besondere Möglichkeiten, die Benutzeroberfläche zu ändern oder zu reagieren, wenn die Tabelle geöffnet wird. Wenn Sie ein gebundenes Skript erstellen möchten, wählen Sie in Google Tabellen Erweiterungen > Apps Script aus.
Der Tabellendienst behandelt Google Sheets als Raster und arbeitet mit zweidimensionalen Arrays. Um die Daten aus der Tabelle abzurufen, müssen Sie Zugriff auf die Tabelle 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 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 im Bild unten dargestellt.
Im folgenden Beispiel sehen Sie, wie Sie die Produktnamen und Produktnummern abrufen und protokollieren.
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 die protokollierten Daten aufrufen möchten, klicken Sie oben im Skripteditor 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 den folgenden Code am Ende des Skripts ein.
function addProduct() {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow(['Cotton Sweatshirt XL', 'css004']);
}
Mit dem oben stehenden Code wird eine neue Zeile mit den angegebenen Werten am Ende der Tabelle angehängt. 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. 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 auch eine Skriptfunktion an ein Bild oder eine Zeichnung in einer Tabelle anhängen. Die Funktion wird ausgeführt, wenn ein Nutzer auf das Bild oder die Zeichnung klickt. Weitere Informationen
Wenn Sie Ihre benutzerdefinierte Benutzeroberfläche als Teil eines Add-ons veröffentlichen möchten, folgen Sie dem Styleguide, um die Konsistenz mit dem Stil und Layout des Google Tabellen-Editors zu gewährleisten.
Verbindung zu Google Formulare herstellen
Mit Apps Script können Sie Google Formulare über die Dienste Forms und Spreadsheet mit Google Sheets verbinden. Mit dieser Funktion kann automatisch ein Google-Formular auf Grundlage von Daten in einer Tabelle 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 Verknüpfen von Google Tabellen mit Google Formulare
Formatierung
Die Klasse Range
enthält 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 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 Regeln zur Datenvalidierung in Google Tabellen zugreifen oder neue Regeln erstellen. Im folgenden Beispiel wird gezeigt, wie Sie eine Regel zur Datenvalidierung 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 zum Arbeiten 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, sofern Sie in den Zellen A1:B15
Diagrammdaten haben:
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 in den Artikeln zu den einzelnen Diagramm-Buildern, z. B. EmbeddedPieChartBuilder
.
Benutzerdefinierte Funktionen in Google Sheets
Eine benutzerdefinierte Funktion ähnelt einer integrierten Tabellenblattfunktion wie =SUM(A1:A5)
, mit dem Unterschied, dass Sie das Verhalten der Funktion mit Apps Script definieren. Sie können beispielsweise eine benutzerdefinierte Funktion in2mm()
erstellen, die einen Wert von Zoll in Millimeter umrechnet. Anschließend können Sie die Formel in Ihrer Tabelle verwenden, indem Sie =in2mm(A1)
oder =in2mm(10)
in eine Zelle eingeben.
Wenn Sie mehr über benutzerdefinierte Funktionen erfahren möchten, probieren Sie den 5‑Minuten-Schnellstart zu Menüs und benutzerdefinierten Funktionen aus oder lesen Sie den ausführlicheren Leitfaden zu benutzerdefinierten Funktionen.
Makros
Makros sind eine weitere Möglichkeit, Apps Script-Code über die Google Sheets-Benutzeroberfläche auszuführen. Im Gegensatz zu benutzerdefinierten Funktionen werden sie über ein Tastenkürzel oder das Google Sheets-Menü aktiviert. Weitere Informationen finden Sie unter Google Sheets-Makros.
Add-ons für Google Sheets
Add-ons sind speziell verpackte Apps Script-Projekte, die in Google Tabellen ausgeführt und über den Google Tabellen-Add-on-Store 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 aus dem Add-on-Store installieren können.
Trigger
Skripts, die an eine Google-Tabelle gebunden sind, können einfache Trigger wie die Funktionen onOpen()
und onEdit()
verwenden, um automatisch zu reagieren, wenn ein Nutzer, der Bearbeitungszugriff auf die Tabelle hat, die Tabelle öffnet oder bearbeitet.
Wie einfache Trigger 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: „open“, „edit“, „change“, „form submit“ und „time-driven“ (clock).