Runtime JavaScript uniquement pour les fonctions personnalisées
Les fonctions personnalisées qui n’utilisent pas de runtime partagé utilisent un runtime JavaScript uniquement conçu pour optimiser les performances des calculs.
Importante
Notez que les fonctions personnalisées Excel sont disponibles sur les plateformes suivantes.
- Office sur le web
- Office pour Windows
- Abonnement Microsoft 365
- retail perpetual Office 2016 et versions ultérieures
- avec licence en volume avec licence perpétuelle Office 2021 et versions ultérieures
- Office sur Mac
Les fonctions personnalisées Excel ne sont actuellement pas prises en charge dans les éléments suivants :
- Office sur iPad
- versions perpétuelles avec licence en volume d’Office 2019 ou version antérieure sur Windows
Remarque
Nous vous recommandons d’utiliser des fonctions personnalisées avec un runtime partagé, sauf si vous avez une raison spécifique de ne pas utiliser un runtime partagé. Notez que l’utilisation d’un runtime partagé signifie que votre complément utilisera WebView2 (basé sur Microsoft Edge Chromium) si les conditions sont remplies. Sinon, votre complément utilisera Trident (Internet Explorer 11), quelle que soit la version de Windows ou de Microsoft 365. Pour obtenir une description des conditions WebView2, voir Navigateurs et contrôles webview utilisés par les compléments Office. Pour plus d’informations sur les runtimes, voir Runtimes dans les compléments Office.
Ce runtime JavaScript uniquement fournit l’accès aux API dans l’espace OfficeRuntime
de noms qui peuvent être utilisées par les fonctions personnalisées et le volet Office (qui s’exécute dans un autre runtime) pour stocker des données.
Demander des données externes
Dans une fonction personnalisée, vous pouvez demander des données externes à l’aide d’une API comme Récupérer ou de XmlHttpRequest (XHR), une API web standard qui émet des demandes HTTP pour interagir avec les serveurs.
N’oubliez pas que les fonctions personnalisées doivent utiliser des mesures de sécurité supplémentaires lors de la création de XmlHttpRequests, ce qui nécessite la même stratégie d’origine et un cors simple.
Une implémentation CORS simple ne peut pas utiliser de cookies et prend uniquement en charge les méthodes simples (GET, HEAD, POST). Le simple CORS accepte des en-têtes simples avec des noms de champs Accept
, Accept-Language
, Content-Language
. Vous pouvez également utiliser un Content-Type
en-tête dans cors simple, à condition que le type de contenu soit application/x-www-form-urlencoded
, text/plain
ou multipart/form-data
.
Stocker et accéder aux données
Dans une fonction personnalisée qui n’utilise pas de runtime partagé, vous pouvez stocker des données et y accéder à l’aide de l’objet OfficeRuntime.storage . L’objet Storage
est un système de stockage clé-valeur persistant, non chiffré, qui fournit une alternative à localStorage, qui ne peut pas être utilisé par les fonctions personnalisées qui utilisent le runtime JavaScript uniquement. L’objet Storage
offre 10 Mo de données par domaine. Les domaines peuvent être partagés par plusieurs compléments.
L’objet Storage
est une solution de stockage partagé, ce qui signifie que plusieurs parties d’un complément peuvent accéder aux mêmes données. Par exemple, les jetons pour l’authentification utilisateur peuvent être stockés dans l’objet, car il est accessible à la fois par une fonction personnalisée (à l’aide du runtime JavaScript uniquement) et par un volet Office (à l’aide Storage
d’un runtime d’affichage web complet). De même, si deux compléments partagent le même domaine (par exemple, www.contoso.com/addin1
, www.contoso.com/addin2
), ils sont également autorisés à partager des informations dans l’objet Storage
. Notez que les compléments qui ont des sous-domaines différents ont des instances différentes de Storage
(par exemple, subdomain.contoso.com/addin1
, differentsubdomain.contoso.com/addin2
).
Étant donné que l’objet Storage
peut être un emplacement partagé, il est important de se rendre compte qu’il est possible de remplacer les paires clé-valeur.
Les méthodes suivantes sont disponibles sur l’objet Storage
.
getItem
getItems
setItem
setItems
removeItem
removeItems
getKeys
Remarque
Il n’existe aucune méthode pour effacer toutes les informations (par clear
exemple, ). À la place, vous devez utiliser l’objet removeItems
pour supprimer plusieurs entrées à la fois.
Exemple OfficeRuntime.storage
L’exemple de code suivant appelle la OfficeRuntime.storage.setItem
méthode pour définir une clé et une valeur dans storage
.
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;
});
}
Étapes suivantes
Découvrez comment déboguer des fonctions personnalisées.