Reine JavaScript-Laufzeit für benutzerdefinierte Funktionen

Benutzerdefinierte Funktionen, die keine freigegebene Laufzeit verwenden, verwenden eine reine JavaScript-Runtime , die zur Optimierung der Leistung von Berechnungen entwickelt wurde.

Wichtig

Beachten Sie, dass benutzerdefinierte Excel-Funktionen auf den folgenden Plattformen verfügbar sind.

  • Office im Web
  • Office unter Windows
    • Microsoft 365-Abonnement
    • retail unbefristete Office 2016 und höher
    • volumenlizenziertes unbefristetes Office 2021 und höher
  • Office für Mac

Benutzerdefinierte Excel-Funktionen werden derzeit in den folgenden Artikeln nicht unterstützt:

  • Office auf dem iPad
  • Volumenlizenzierte unbefristete Versionen von Office 2019 oder früher unter Windows

Hinweis

Es wird empfohlen, benutzerdefinierte Funktionen mit einer freigegebenen Runtime zu verwenden, es sei denn, Sie haben einen bestimmten Grund, eine freigegebene Runtime nicht zu verwenden. Beachten Sie, dass die Verwendung einer freigegebenen Runtime bedeutet, dass Ihr Add-In WebView2 (Microsoft Edge Chromium-basiert) verwendet, wenn Bedingungen erfüllt sind. Andernfalls verwendet Ihr Add-In Trident (Internet Explorer 11) unabhängig von der Windows- oder Microsoft 365-Version. Eine Beschreibung der WebView2-Bedingungen finden Sie unter Browser und Webview-Steuerelemente, die von Office-Add-Ins verwendet werden. Weitere Informationen zu Runtimes finden Sie unter Runtimes in Office-Add-Ins.

Diese reine JavaScript-Runtime bietet Zugriff auf APIs im Namespace, die OfficeRuntime von benutzerdefinierten Funktionen und dem Aufgabenbereich (der in einer anderen Laufzeit ausgeführt wird) zum Speichern von Daten verwendet werden können.

Anfordern externer Daten

Innerhalb einer benutzerdefinierten Funktion können Sie externe Daten mithilfe einer API wie Fetch oder mithilfe von XmlHttpRequest (XHR) anfordern, einer Web-Standard-API, die HTTP-Anforderungen für die Interaktion mit Servern ausgibt.

Beachten Sie, dass benutzerdefinierte Funktionen beim Erstellen von XmlHttpRequests zusätzliche Sicherheitsmaßnahmen verwenden müssen, sodass dieselbe Ursprungsrichtlinie und einfaches CORS erforderlich sind.

Eine einfache CORS-Implementierung kann keine Cookies verwenden und unterstützt nur einfache Methoden (GET, HEAD, POST). Einfache CORS akzeptieren einfache Kopfzeilen mit Feldnamen Accept, Accept-Language, Content-Language. Sie können auch einen Content-Type Header in einfachem CORS verwenden, vorausgesetzt, der Inhaltstyp ist application/x-www-form-urlencoded, text/plainoder multipart/form-data.

Speichern und Zugreifen auf Daten

In einer benutzerdefinierten Funktion, die keine freigegebene Runtime verwendet, können Sie Daten mithilfe des OfficeRuntime.storage-Objekts speichern und darauf zugreifen. Das Storage -Objekt ist ein persistentes, unverschlüsseltes Schlüssel-Wert-Speichersystem, das eine Alternative zu localStorage bietet, die nicht von benutzerdefinierten Funktionen verwendet werden kann, die die reine JavaScript-Runtime verwenden. Das Storage -Objekt bietet 10 MB Daten pro Domäne. Domänen können von mehreren Add-Ins freigegeben werden.

Das Storage Objekt ist eine freigegebene Speicherlösung, was bedeutet, dass mehrere Teile eines Add-Ins auf dieselben Daten zugreifen können. Token für die Storage Benutzerauthentifizierung können z. B. im -Objekt gespeichert werden, da sowohl eine benutzerdefinierte Funktion (unter Verwendung der JavaScript-Runtime) als auch ein Aufgabenbereich (mit einer vollständigen Webview-Runtime) darauf zugreifen kann. Wenn sich zwei Add-Ins dieselbe Domäne teilen (z. B www.contoso.com/addin1. , www.contoso.com/addin2), dürfen sie auch Informationen über das Storage -Objekt hin und her freigeben. Beachten Sie, dass Add-Ins mit unterschiedlichen Unterdomänen unterschiedliche Instanzen von Storage aufweisen (z. B subdomain.contoso.com/addin1. , differentsubdomain.contoso.com/addin2).

Da das Storage Objekt eine freigegebene Position sein kann, ist es wichtig zu beachten, dass es möglich ist, Schlüssel-Wert-Paare zu überschreiben.

Die folgenden Methoden sind für das Storage -Objekt verfügbar.

  • getItem
  • getItems
  • setItem
  • setItems
  • removeItem
  • removeItems
  • getKeys

Hinweis

Es gibt keine Methode zum Löschen aller Informationen (z clear. B. ). Stattdessen sollten Sie removeItems verwenden, um mehrere Einträge zugleich zu entfernen.

OfficeRuntime.storage-Beispiel

Im folgenden Codebeispiel wird die OfficeRuntime.storage.setItem -Methode aufgerufen, um einen Schlüssel und einen Wert in storagefestzulegen.

function StoreValue(key, value) {

  return OfficeRuntime.storage.setItem(key, value).then(function (result) {
      return "Success: Item with key '" + key + "' saved to storage.";
  }, function (error) {
      return "Error: Unable to save item with key '" + key + "' to storage. " + error;
  });
}

Nächste Schritte

Erfahren Sie, wie Sie benutzerdefinierte Funktionen debuggen.

Siehe auch