5 Skriptfunktionen von Google Sheets, die Sie kennen müssen

Google Sheets ist ein leistungsstarkes, cloudbasiertes Tabellenkalkulationstool, mit dem Sie fast alles tun können, was Sie auch in Microsoft Excel tun können . Aber die wirkliche Stärke von Google Sheets ist die damit verbundene Google Scripting(Google Scripting) -Funktion.

Google Apps Scripting ist ein Hintergrund-Scripting-Tool, das nicht nur in Google Sheets , sondern auch in Google Docs, Gmail, Google Analytics und fast jedem anderen Google Cloud-Dienst funktioniert. Damit können Sie diese einzelnen Apps automatisieren und jede dieser Apps miteinander integrieren.

In diesem Artikel erfahren Sie, wie Sie mit der Skripterstellung in Google Apps beginnen , ein einfaches Skript in Google Tabellen(Google Sheets) zum Lesen und Schreiben von Zellendaten erstellen und die effektivsten erweiterten Skriptfunktionen von Google Tabellen(Google Sheets) kennenlernen.

So erstellen Sie ein Google Apps-Skript(How to Create a Google Apps Script)

Sie können sofort damit beginnen, Ihr erstes Google Apps- Skript in Google Tabellen(Google Sheets) zu erstellen . 

Wählen Sie dazu im Menü Extras(Script Editor) und dann Skripteditor(Tools) .

Dies öffnet das Skript-Editor-Fenster und standardmäßig eine Funktion namens myfunction() . Hier können Sie Ihr Google Script erstellen und testen .

Um es auszuprobieren, versuchen Sie, eine Google Sheets -Skriptfunktion zu erstellen , die Daten aus einer Zelle liest, eine Berechnung darauf durchführt und die Datenmenge in eine andere Zelle ausgibt.

Die Funktion zum Abrufen von Daten aus einer Zelle sind die Funktionen getRange() und getValue() . Sie können die Zelle nach Zeile und Spalte identifizieren. Wenn Sie also einen Wert in Zeile 2 und Spalte 1 (Spalte A) haben, sieht der erste Teil Ihres Skripts so aus:

function myFunction() {
   var sheet = SpreadsheetApp.getActiveSheet();
   var row = 2;
   var col = 1;
   var data = sheet.getRange(row, col).getValue();
}

Dadurch wird der Wert aus dieser Zelle in der Datenvariablen gespeichert(data) . Sie können eine Berechnung mit den Daten durchführen und diese Daten dann in eine andere Zelle schreiben. Der letzte Teil dieser Funktion lautet also:

   var results = data * 100;
   sheet.getRange(row, col+1).setValue(results);
}

Wenn Sie mit dem Schreiben Ihrer Funktion fertig sind, wählen Sie zum Speichern das Datenträgersymbol aus. 

Wenn Sie eine neue Google-Tabellen(Google Sheets) -Skriptfunktion wie diese zum ersten Mal ausführen (indem Sie auf das Symbol „Ausführen“ klicken), müssen Sie die Autorisierung(Authorization) für die Ausführung des Skripts in Ihrem Google-Konto(Google Account) erteilen .

Berechtigungen zum Fortfahren zulassen. Sobald Ihr Skript ausgeführt wird, sehen Sie, dass das Skript die Berechnungsergebnisse in die Zielzelle geschrieben hat.

Nachdem Sie nun wissen, wie man eine grundlegende Google Apps -Skriptfunktion schreibt, werfen wir einen Blick auf einige fortgeschrittenere Funktionen.

Verwenden Sie getValues, um Arrays zu laden(Use getValues To Load Arrays)

Sie können das Konzept der Berechnung von Daten in Ihrer Tabellenkalkulation mit Skripterstellung auf eine neue Ebene bringen, indem Sie Arrays verwenden. Wenn Sie mithilfe von getValues ​​eine Variable in das Google Apps -Skript laden, ist die Variable ein Array, das mehrere Werte aus dem Blatt laden kann.

function myFunction() {
   var sheet = SpreadsheetApp.getActiveSheet();
   var data = sheet.getDataRange().getValues();

Die Datenvariable ist ein mehrdimensionales Array, das alle Daten aus dem Blatt enthält. Um eine Berechnung mit den Daten durchzuführen, verwenden Sie eine for - Schleife. Der Zähler der for-Schleife durchläuft jede Zeile, und die Spalte bleibt konstant, basierend auf der Spalte, in die Sie die Daten ziehen möchten.

In unserer Beispieltabelle können Sie Berechnungen für die drei Datenzeilen wie folgt durchführen.

for (var i = 1; i < data.length; i++) {
   var result = data[i][0] * 100;
   sheet.getRange(i+1, 2).setValue(result); 
   }
}

Speichern(Save) Sie dieses Skript und führen Sie es wie oben beschrieben aus. Sie werden sehen, dass alle Ergebnisse in Spalte 2 Ihrer Tabelle eingetragen sind.

Sie werden feststellen, dass das Referenzieren einer Zelle und Zeile in einer Array-Variablen anders ist als bei einer getRange-Funktion. 

data[i][0] bezieht sich auf die Array-Dimensionen, wobei die erste Dimension die Zeile und die zweite die Spalte ist. Beide beginnen bei null.

getRange(i+1, 2) bezieht sich auf die zweite Zeile, wenn i=1 ist (da Zeile 1 der Header ist) und 2 die zweite Spalte ist, in der die Ergebnisse gespeichert werden.

Verwenden Sie appendRow, um Ergebnisse zu schreiben(Use appendRow To Write Results)

Was ist, wenn Sie eine Tabelle haben, in der Sie Daten in eine neue Zeile statt in eine neue Spalte schreiben möchten?

Das geht ganz einfach mit der Funktion appendRow . Diese Funktion stört keine vorhandenen Daten im Blatt. Es wird einfach eine neue Zeile an das vorhandene Blatt angehängt.

Erstellen Sie als Beispiel eine Funktion, die von 1 bis 10 zählt und einen Zähler mit Vielfachen von 2 in einer Zählerspalte(Counter) anzeigt.

Diese Funktion würde wie folgt aussehen:

function myFunction() {
   var sheet = SpreadsheetApp.getActiveSheet();

   for (var i = 1; i<11; i++) {
      var result = i * 2;
     sheet.appendRow([i,result]);
   }
}

Hier sind die Ergebnisse, wenn Sie diese Funktion ausführen.

Verarbeiten Sie RSS-Feeds mit URLFetchApp(Process RSS Feeds With URLFetchApp)

Sie könnten die vorherige Google Sheets -Skriptfunktion und die URLFetchApp kombinieren(URLFetchApp) , um den RSS - Feed von jeder Website abzurufen und für jeden kürzlich auf dieser Website veröffentlichten Artikel eine Zeile in eine Tabelle zu schreiben.

Dies ist im Grunde eine DIY- Methode, um Ihre eigene RSS- Feed-Reader-Tabelle zu erstellen!

Das Skript dafür ist auch nicht zu kompliziert.

function myFunction() {
   var sheet = SpreadsheetApp.getActiveSheet();
   var item, date, title, link, desc; 
   var txt = UrlFetchApp.fetch("https://www.topsecretwriters.com/rss").getContentText();
   var doc = Xml.parse(txt, false);  

   title = doc.getElement().getElement("channel").getElement("title").getText();
   var items = doc.getElement().getElement("channel").getElements("item");   

// Parsing single items in the RSS Feed

for (var i in items) {
   item  = items[i];
   title = item.getElement("title").getText();
   link  = item.getElement("link").getText();
   date  = item.getElement("pubDate").getText();
   desc  = item.getElement("description").getText();
   
   sheet.appendRow([title,link,date,desc]);
}
}

Wie Sie sehen können, zieht Xml.parse jedes Element aus dem RSS -Feed und trennt jede Zeile in Titel, Link, Datum und Beschreibung. 

Mit der appendRow- Funktion können Sie diese Elemente für jedes einzelne Element im RSS - Feed in die entsprechenden Spalten einfügen.

Die Ausgabe in Ihrem Blatt sieht in etwa so aus:

Anstatt die URL des (URL)RSS - Feeds in das Skript einzubetten, könnten Sie in Ihrem Blatt ein Feld mit der URL haben und dann mehrere Blätter – eines für jede Website, die Sie überwachen möchten.

Verketten Sie Zeichenfolgen(Concatenate Strings) und fügen Sie(Add) einen Wagenrücklauf hinzu(Carriage Return)

Sie könnten die RSS -Tabelle noch einen Schritt weiter bringen, indem Sie einige Textbearbeitungsfunktionen hinzufügen und dann E-Mail-Funktionen verwenden, um sich selbst eine E-Mail mit einer Zusammenfassung aller neuen Beiträge im RSS - Feed der Website zu senden.

Dazu müssen Sie unter dem Skript, das Sie im vorherigen Abschnitt erstellt haben, einige Skripte hinzufügen, die alle Informationen in der Tabelle extrahieren. 

Sie werden die Betreffzeile und den Textkörper der E-Mail erstellen wollen, indem Sie alle Informationen aus demselben „Element“-Array zusammenfassen, das Sie verwendet haben, um die RSS -Daten in die Tabelle zu schreiben. 

Initialisieren Sie dazu den Betreff und die Nachricht, indem Sie die folgenden Zeilen vor die For-Schleife „items“ setzen.

var subject = ‘Latest 10 articles published at mysite.com’
var message = ‘’

Fügen Sie dann am Ende der for-Schleife „items“ (direkt nach der appendRow-Funktion) die folgende Zeile hinzu.

message = message + title + '\n' + link + '\n' + date + '\n' + desc + '\n' + '\n \n';

Das „+“-Symbol verkettet alle vier Elemente, gefolgt von „ “ für einen Wagenrücklauf nach jeder Zeile. Am Ende jedes Titeldatenblocks möchten Sie zwei Wagenrückläufe für einen schön formatierten E-Mail-Text.

Sobald alle Zeilen verarbeitet sind, enthält die Variable „body“ die gesamte Zeichenfolge der E-Mail-Nachricht. Jetzt können Sie die E-Mail senden!

So senden Sie E-Mails im Google Apps-Skript(How To Send Email In Google Apps Script)

Der nächste Abschnitt Ihres Google-Skripts(Google Script) besteht darin, den „Betreff“ und den „Text“ per E-Mail zu senden. Dies ist in Google Script sehr einfach.

var emailAddress = [email protected];
MailApp.sendEmail(emailAddress, subject, message);

Die MailApp ist eine sehr praktische Klasse innerhalb von Google Apps -Skripten, die Ihnen Zugriff auf den E-Mail-Dienst Ihres Google-Kontos gibt, um E-Mails zu senden oder zu empfangen. Dank dessen können Sie mit der einzeiligen Funktion sendEmail jede E-Mail(send any email) nur mit der E-Mail-Adresse, der Betreffzeile und dem Textkörper versenden.

So sieht die resultierende E-Mail aus. 

Durch die Kombination der Möglichkeit, den RSS - Feed einer Website zu extrahieren, ihn in einer Google -Tabelle zu speichern und ihn mit enthaltenen (Google Sheet)URL -Links an sich selbst zu senden , ist es sehr bequem, den neuesten Inhalten für jede Website zu folgen.

Dies ist nur ein Beispiel für die Leistungsfähigkeit von Google Apps - Skripts zur Automatisierung von Aktionen und zur Integration mehrerer Cloud-Dienste.



About the author

Ich bin ein Computerprofi mit über 10 Jahren Erfahrung. In meiner Freizeit helfe ich gerne am Schreibtisch aus und bringe Kindern den Umgang mit dem Internet bei. Meine Fähigkeiten umfassen viele Dinge, aber das Wichtigste ist, dass ich weiß, wie man Menschen hilft, Probleme zu lösen. Wenn Sie jemanden brauchen, der Ihnen bei etwas Dringenden helfen kann, oder einfach nur ein paar grundlegende Tipps wünschen, dann wenden Sie sich bitte an mich!



Related posts