Tutorial: Senden von wöchentlichen E-Mail-Erinnerungen basierend auf Tabellenkalkulationsdaten

In diesem Tutorial erfahren Sie, wie Sie Informationen aus einem Office-Skript für Excel als Teil eines automatisierten Power Automate-Workflows zurückgeben. Sie erstellen ein Skript, das einen Zeitplan durchsucht und einen Flow verwendet, um Erinnerungs-E-Mails zu senden. Dieser Flow wird nach einem regelmäßigen Zeitplan ausgeführt und stellt diese Erinnerungen in Ihrem Namen bereit.

Tipp

Wenn Sie noch nicht mit Office-Skripts vertraut sind, empfehlen wir Ihnen, mit Tutorial: Erstellen und Formatieren einer Excel-Tabelle zu beginnen.

Wenn Sie noch nicht mit Power Automate vertraut sind, empfehlen wir Ihnen, mit Tutorial: Aktualisieren einer Kalkulationstabelle aus einem Power Automate-Flow und Tutorial: Automatisches Speichern von Inhalten aus E-Mails in einer Arbeitsmappe zu beginnen.

Office-Skripts verwenden TypeScript, und dieses Lernprogramm richten sich an Anfänger bis Fortgeschrittene mit JavaScript oder TypeScript. Wenn Sie noch nicht mit JavaScript vertraut sind, empfehlen wir Ihnen, mit dem Mozilla-JavaScript-Lernprogramm zu beginnen.

Voraussetzungen

Für dieses Tutorial benötigen Sie Zugriff auf Office-Skripts und Power Automate. Überprüfen Sie die Plattformunterstützung , wenn die Registerkarte Automatisieren nicht angezeigt wird. In den häufig gestellten Fragen zur Power Automate-Registrierung finden Sie Informationen zu den ersten Schritten mit Power Automate.

Vorbereiten der Arbeitsmappe

  1. Laden Sie die Arbeitsmappe on-call-rotation.xlsx auf Ihr OneDrive herunter.

  2. Öffnen Sie on-call-rotation.xlsx in Excel.

  3. Fügen Sie der Tabelle eine Zeile mit Ihrem Namen, Ihrer E-Mail-Adresse sowie dem Start- und Enddatum hinzu, die sich mit dem aktuellen Datum überschneiden.

    Wichtig

    Das Skript, das Sie schreiben, verwendet den ersten übereinstimmenden Eintrag in der Tabelle, stellen Sie also sicher, dass Ihr Name über einer Zeile mit der aktuellen Woche steht.

    Ein Arbeitsblatt mit den Daten der Rotationstabelle auf Abruf.

Erstellen eines Office-Skripts

  1. Wechseln Sie zur Registerkarte Automatisieren , und wählen Sie Neues Skript aus.

  2. Nennen Sie das Skript Person mit Rufbereitschaft abrufen.

  3. Sie sollten nun ein leeres Skript haben. Sie möchten ein Skript, das eine E-Mail-Adresse aus der Kalkulationstabelle abruft. Ändern Sie main folgendermaßen, damit eine Zeichenfolge zurückgegeben wird:

    function main(workbook: ExcelScript.Workbook) : string {
    }
    
  4. Als Nächstes müssen Sie alle Daten aus der Tabelle abrufen. Dadurch kann das Skript jede Zeile betrachten. Fügen Sie im main-Funktion den folgenden Code hinzu.

    // Get the H1 worksheet.
    let worksheet = workbook.getWorksheet("H1");
    
    // Get the first (and only) table in the worksheet.
    let table = worksheet.getTables()[0];
    
    // Get the data from the table.
    let tableValues = table.getRangeBetweenHeaderAndTotal().getValues();
    
  5. Die Datumsangaben in der Tabelle werden mit der fortlaufenden Zahl für das Datum von Excel gespeichert. Sie müssen diese Datumsangaben in JavaScript-Datumsangaben konvertieren, um sie zu vergleichen. Fügen Sie die folgende Hilfsfunktion außerhalb der main Funktion hinzu.

    // Convert the Excel date to a JavaScript Date object.
    function convertDate(excelDateValue: number) {
        let javaScriptDate = new Date(Math.round((excelDateValue - 25569) * 86400 * 1000));
        return javaScriptDate;
    }
    
  6. Nun müssen Sie herausfinden, welche Person gerade in Bereitschaft ist. Ihre Zeile enthält ein Start- und Enddatum, die das aktuelle Datum einschließen. Das Skript geht davon aus, dass jeweils nur eine Person im Gespräch ist. Skripts können Arrays zurückgeben, um mehrere Werte zu verarbeiten, aber Sie können die erste übereinstimmende E-Mail-Adresse für dieses Tutorial zurückgeben. Fügen Sie am Ende der main-Funktion den folgenden Code hinzu.

    // Look for the first row where today's date is between the row's start and end dates.
    let currentDate = new Date();
    for (let row = 0; row < tableValues.length; row++) {
        let startDate = convertDate(tableValues[row][2] as number);
        let endDate = convertDate(tableValues[row][3] as number);
        if (startDate <= currentDate && endDate >= currentDate) {
            // Return the first matching email address.
            return tableValues[row][1].toString();
        }
    }
    
  7. Das fertige Skript sollte wie folgt aussehen:

    function main(workbook: ExcelScript.Workbook) : string {
        // Get the H1 worksheet.
        let worksheet = workbook.getWorksheet("H1");
    
        // Get the first (and only) table in the worksheet.
        let table = worksheet.getTables()[0];
    
        // Get the data from the table.
        let tableValues = table.getRangeBetweenHeaderAndTotal().getValues();
    
        // Look for the first row where today's date is between the row's start and end dates.
        let currentDate = new Date();
        for (let row = 0; row < tableValues.length; row++) {
            let startDate = convertDate(tableValues[row][2] as number);
            let endDate = convertDate(tableValues[row][3] as number);
            if (startDate <= currentDate && endDate >= currentDate) {
                // Return the first matching email address.
                return tableValues[row][1].toString();
            }
        }
    }
    
    // Convert the Excel date to a JavaScript Date object.
    function convertDate(excelDateValue: number) {
        let javaScriptDate = new Date(Math.round((excelDateValue - 25569) * 86400 * 1000));
        return javaScriptDate;
    }
    

Erstellen eines automatisierten Workflows mit Power Automate

  1. Melden Sie sich an der Power Automate-Website an.

  2. Wählen Sie in dem Menü, das auf der linken Seite des Bildschirms angezeigt wird, Erstellen aus. Damit gelangen Sie zur Liste der Möglichkeiten zum Erstellen neuer Workflows.

    Schaltfläche „Erstellen“ in Power Automate.

  3. Wählen Sie im Abschnitt Ohne Vorlage anfangen die Option Automatisierter Cloudfluss aus.

    Schaltfläche „Geplanter Cloudfluss“ in Power Automate.

  4. Legen Sie als Nächstes den Zeitplan für diesen Flow fest. Ihre Kalkulationstabelle verfügt über eine neue Anrufzuweisung, die jeden Montag in der ersten Jahreshälfte 2024 beginnt. Legen Sie den Flow so fest, dass er montagmorgens zuerst ausgeführt wird. Verwenden Sie die folgenden Optionen, um den Flow so zu konfigurieren, dass er jede Woche montags ausgeführt wird.

    • Flowname: Person mit Rufbereitschaft benachrichtigen
    • Beginn: 27.11.23 um 1:00 Uhr
    • Wiederholen: 1-mal wöchentlich
    • an diesen Tagen: Mo

    Das Power Automate-Dialogfeld ‚Erstellen eines geplanten Cloudflusses‘ mit Optionen. Zu den Optionen gehören der Flussname, die Anfangszeit, die Wiederholungszeit und ein Wochentag, an dem der Fluss ausgeführt werden soll.

  5. Wählen Sie Erstellen aus.

  6. Wählen Sie im Flow-Generator die + Schaltfläche und dann Aktion hinzufügen aus.

  7. Suchen Sie im Aufgabenbereich Aktion hinzufügen nach "Excel-Ausführungsskript". Wählen Sie die Aktion Skript ausführen des Excel Online (Business)-Connectors aus. Diese Aktion führt ein Skript aus Ihrem OneDrive in einer Arbeitsmappe aus. Wenn Sie ein Skript verwenden möchten, das in der SharePoint-Bibliothek Ihres Teams gespeichert ist, sollten Sie die Aktion Skript aus einer SharePoint-Bibliothek ausführen verwenden.

    Der Aufgabenbereich für die Aktionsauswahl mit Aktionen für den Excel Online (Business)-Connector. Die Aktion Skript ausführen ist hervorgehoben.

  8. Möglicherweise werden Sie aufgefordert, sich bei Ihrem Microsoft 365-Konto anzumelden. Führen Sie dies aus, um das Tutorial fortzusetzen.

  9. Als nächstes wählen Sie die Arbeitsmappe und das Skript aus, die im Ablaufschritt verwendet werden sollen. Für das Tutorial verwenden Sie die Arbeitsmappe, die Sie in Ihrem OneDrive erstellt haben. Sie können auch eine beliebige Arbeitsmappe in einer OneDrive- oder SharePoint-Website verwenden. Geben Sie die folgenden Parameter für die Aktion Skript ausführen an:

    • Location: OneDrive for Business
    • Document Library: OneDrive
    • Datei: MyWorkbook.xlsx (ausgewählt über den Dateibrowser)
    • Skript: Person mit Rufbereitschaft abrufen

    Die Einstellungen des Power Automate-Connectors zum Ausführen eines Skripts.

  10. Wählen Sie im Flow-Generator die + Schaltfläche und dann Aktion hinzufügen aus.

  11. Beenden Sie den Flow, indem Sie die Erinnerungs-E-Mail senden. Suchen Sie im Aufgabenbereich Aktion hinzufügen nach "E-Mail senden". Wählen Sie die Aktion Office 365 Outlook-ConnectorE-Mail senden (V2) aus.

    Der Aufgabenbereich

    Hinweis

    In diesem Lernprogramm wird Outlook verwendet. Sie können stattdessen Ihren bevorzugten E-Mail-Dienst verwenden, obwohl einige Optionen unterschiedlich sein können.

  12. Wählen Sie für den Parameter An das Textfeld aus, und wählen Sie Benutzerdefinierten Wert eingeben aus. Verwenden Sie das dynamische Inhaltssteuerelement, um die vom Skript zurückgegebene E-Mail-Adresse hinzuzufügen. Dies wird mit dem Excel-Symbol daneben als Ergebnis gekennzeichnet. Sie können einen beliebigen Betreff und Text eingeben.

    Die Power Automate Outlook Connector-Einstellungen zum Senden einer E-Mail. Zu den Optionen gehören die zu sendende Datei, der Betreff der E-Mail und der Textkörper der E-Mail sowie erweiterte Optionen.

  13. Wählen Sie Speichern aus.

Testen des Skripts in Power Automate

Ihr Flow wird jeden Montagmorgen ausgeführt. Sie können das Skript jetzt testen, indem Sie die Schaltfläche Test in der oberen rechten Ecke des Bildschirms auswählen. Wählen Sie Manuell und anschließend Test ausführen aus, um den Flow jetzt auszuführen und das Verhalten zu testen. Möglicherweise müssen Sie Excel und Outlook Berechtigungen erteilen, um fortzufahren.

Schaltfläche „Power Automate-Test“.

Tipp

Wenn Ihr Flow keine E-Mail senden kann, vergewissern Sie sich, dass in das Arbeitsblatt eine gültige E-Mail für den aktuellen Datumsbereich oben in der Tabelle aufgeführt ist.

Nächste Schritte

Besuchen Sie Ausführen von Office-Skripts mit Power Automate, um mehr über das Verbinden von Office-Skripts mit Power Automate zu erfahren.

Sie können sich auch das Beispielszenario Automatisierte Aufgabenerinnerungen ansehen, um zu erfahren, wie Sie Office-Skripts und Power Automate mit Teams Adaptive Cards kombinieren können.