Teilen über


Reine JavaScript-Laufzeit für benutzerdefinierte Funktionen

Benutzerdefinierte Funktionen, die keine freigegebene Runtime verwenden, basieren auf einer reinen JavaScript-Runtime. Diese Laufzeit ist für schnelle Berechnungen optimiert, verfügt aber über weniger APIs.

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
    • volumelizenzierte unbefristete/LTSC-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 2021 oder früher unter Windows

Hinweis

Das einheitliche Manifest für Microsoft 365 unterstützt derzeit keine Projekte für benutzerdefinierte Funktionen. Sie müssen das Add-In-Manifest nur für projekte mit benutzerdefinierten Funktionen verwenden. Weitere Informationen finden Sie unter Office-Add-Ins-Manifest.

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. 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 (, 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;
  });
}

Vergleichen mit freigegebener Runtime

Benötigen Sie eine Benutzeroberflächenintegration oder Office.js Objekte und Ereignisse? Verschieben Sie diese Funktionen in eine freigegebene Runtime.

Nächste Schritte

Erfahren Sie, wie Sie benutzerdefinierte Funktionen debuggen.

Siehe auch