Suche

Sende Webhook aus Excel mit Power Automate

Themen

Datenautomatisierung mit Office Scripts: So sendest du Excel-Daten per Webhook

In einer zunehmend digitalisierten Arbeitswelt ist Automatisierung längst kein Luxus mehr, sondern eine Notwendigkeit. Wer regelmäßig mit Microsoft Excel arbeitet und wiederkehrende Aufgaben effizienter gestalten möchte, stößt früher oder später auf Office Scripts – eine mächtige Möglichkeit, Excel-Vorgänge zu automatisieren. In diesem Beitrag zeigen wir anhand eines praktischen Beispiels, wie ein Office Script Excel-Daten automatisiert verarbeitet und diese über einen Webhook an einen externen Dienst (wie z. B. einen Logic App-Endpunkt in Azure) überträgt. Klingt spannend? Dann lies weiter!

Wie funktioniert das Script?

Das Office Script, das wir hier unter die Lupe nehmen, hat ein klares Ziel: Daten aus einer definierten Tabelle in Excel erfassen, in ein JSON-Format umwandeln und über das Internet an einen definierten Webhook senden. Dieses Szenario ist ideal für Anwendungen, bei denen Excel als Dateneingabequelle dient, die gesammelten Informationen aber zentral verarbeitet oder archiviert werden sollen – etwa in einer Datenbank, einem Workflow-System oder einem Cloud-Service.

1. Auslesen der Daten

Das Skript beginnt mit dem Zugriff auf die aktive Arbeitsmappe und darin auf das Arbeitsblatt, das gerade geöffnet ist. Anschließend wird der Bereich der Tabelle (in diesem Fall „Tabelle1“) definiert und die enthaltenen Werte werden als zweidimensionales Array abgerufen:

let sheet = workbook.getActiveWorksheet();
let table = sheet.getTable("Tabelle1");
let range = table.getRange();
let values = range.getValues();

// Header abrufen
let headers = values[0];

Dabei enthält values[0] die Spaltenüberschriften, also die sogenannten Header. Diese werden für den nächsten Schritt benötigt.

2. Datenstruktur erstellen

Jetzt wird es interessant: Das Skript formt die rohen Daten in strukturierte Objekte um. Für jede Zeile der Tabelle (außer der Kopfzeile) wird ein neues Objekt erzeugt, wobei die Spaltenüberschrift jeweils als Schlüssel dient. Das geschieht mit einer Kombination aus map() und forEach():

let data = values.slice(1).map(row => {
    let record = {};
    headers.forEach((header, index) => {
        record[header] = row[index];
    });
    return record;
});

Wichtig: Achte darauf das html-zeichen > wieder in ein > zu decoden.


Am Ende dieses Schritts liegt ein Array von Objekten vor – vergleichbar mit einer kleinen Datenbank aus Zeilen und Spalten, aber in einem Format, das sich ideal für den Export eignet.

3. Konvertieren in JSON

Der nächste logische Schritt: Das strukturierte Datenarray wird in einen JSON-String umgewandelt, der von den meisten modernen Web-APIs verstanden wird:

let jsonData = JSON.stringify(data);

4. Senden an einen Webhook

Jetzt kommt der spannende Teil: Die JSON-Daten werden per fetch() an eine definierte URL gesendet – konkret handelt es sich hier um einen Webhook einer Azure Logic App. Das Skript definiert die sendWebhook()-Funktion, die den POST-Request übernimmt. Der gesamte Sendevorgang läuft asynchron, sodass Excel währenddessen nicht blockiert wird.

let response = await fetch('https://prod-121.westus.logic.azure.com/…', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json'
    },
    body: jsonData
});

Fazit: Kleine Skripte, große Wirkung

Dieses Office Script ist ein perfektes Beispiel dafür, wie sich alltägliche Arbeitsprozesse in Excel mit wenig Code deutlich effizienter gestalten lassen. Statt Daten manuell zu kopieren oder in andere Systeme einzupflegen, übernimmt das Script diese Aufgabe automatisch – zuverlässig, konsistent und zeitsparend.

Gerade in Kombination mit Power Automate oder Azure Logic Apps lassen sich auf diese Weise clevere Automatisierungsszenarien realisieren, bei denen Excel nur noch der Startpunkt eines Workflows ist. Wer also mit vielen Tabellen arbeitet und sich monotone Schritte sparen möchte, sollte einen Blick auf Office Scripts werfen. Es lohnt sich!

👉 Den vollständigen Code findest du im Anschluss – kopiere ihn einfach in dein Office Script-Editor in Excel und passe bei Bedarf die Tabellen- und Webhook-Details an.

async function main(workbook: ExcelScript.Workbook) {
    // Daten aus der Tabelle abrufen
    let sheet = workbook.getActiveWorksheet();
    let table = sheet.getTable("Tabelle1"); 
    let range = table.getRange(); // Beispielbereich
    let values = range.getValues();

    // Header abrufen
    let headers = values[0];

    // Daten in Objekte umwandeln
    let data = values.slice(1).map(row => {
        let record = {};
        headers.forEach((header, index) => {
            record[header] = row[index];
        });
        return record;
    });

    // Daten in JSON-Format umwandeln
    let jsonData = JSON.stringify(data);

    // Webhook-Anfrage senden
    async function sendWebhook(data: string) {
        let response = await fetch('https://prod-121.westus.logic.azure.com/workflows/', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: jsonData
        });
        return response;
    }

    // Webhook senden
    await sendWebhook(jsonData);
}

Office Script + Power Automate

Wenn du bereits ein Office Script geschrieben hast, das Daten aus einer Excel-Tabelle holt und per Webhook verschickt, dann ist der nächste logische Schritt: Das Ganze automatisieren. Und hier kommt Power Automate ins Spiel. Denn damit kannst du genau dieses Skript ohne manuelles Zutun regelmäßig oder ereignisbasiert starten lassen. Wie das funktioniert? Schauen wir uns das mal an.

Der Einsatzfall

Du hast eine Tabelle in Excel, z. B. auf OneDrive oder SharePoint Online, und möchtest regelmäßig deren Inhalt per Webhook an eine Logic App oder einen anderen Webservice senden. Das Office Script ist bereits fertig – es liest die Daten, wandelt sie in JSON um und verschickt sie. Was jetzt noch fehlt, ist ein Trigger, der diesen Ablauf automatisch startet. Genau das machst du mit Power Automate.

So funktioniert’s mit „Script ausführen“

Power Automate bietet eine spezielle Aktion namens „Script ausführen“ (englisch: Run a script). Damit kannst du ein Office Script direkt in einem Flow ausführen – ganz ohne Code in Power Automate selbst. Du brauchst nur ein paar Infos:

  • Die Excel-Datei muss auf OneDrive for Business oder SharePoint Online liegen
  • Das Office Script muss in dieser Datei gespeichert oder mit ihr verknüpft sein
  • Der Name des Scripts muss bekannt sein

Vorteile der Kombination

Der große Vorteil dieser Kombination liegt auf der Hand: Du kannst Excel weiterhin als Dateneingabe nutzen – ganz klassisch per Copy & Paste, durch Formulare oder sogar aus anderen Systemen – aber der Export und die Verarbeitung passiert automatisch. Power Automate übernimmt den Zeitplan oder reagiert auf ein Ereignis. Das Office Script macht den Rest.

Noch besser wird’s, wenn du diese Daten in einem größeren Workflow weiterverarbeitest: In Power Automate kannst du nach dem Script-Aufruf weitere Schritte hinzufügen – etwa um Bestätigungen zu versenden, Datenbanken zu füllen oder andere APIs zu bedienen.

noch mehr interessante Beiträge

Nach oben scrollen