Compartir a través de


Tiempo de ejecución solo de JavaScript para funciones personalizadas

Las funciones personalizadas que no usan un entorno de ejecución compartido usan un entorno de ejecución solo de JavaScript que está diseñado para optimizar el rendimiento de los cálculos.

Importante

Tenga en cuenta que las funciones personalizadas están disponibles en Excel en las siguientes plataformas.

  • Office en la web
  • Office en Windows
    • Suscripción a Microsoft 365
    • Retail perpetual Office 2016 y versiones posteriores
    • Licencia por volumen perpetua de Office 2021 y versiones posteriores
  • Office en Mac

Las funciones personalizadas de Excel no se admiten actualmente en lo siguiente:

  • Office en iPad
  • versiones perpetuas con licencia por volumen de Office 2019 o versiones anteriores en Windows

Nota:

Se recomienda usar funciones personalizadas con un entorno de ejecución compartido, a menos que tenga una razón específica para no usar un entorno de ejecución compartido. Tenga en cuenta que el uso de un entorno de ejecución compartido significa que el complemento usará WebView2 (basado en Microsoft Edge Chromium) si se cumplen las condiciones y, de lo contrario, el complemento usará Trident (Internet Explorer 11), independientemente de la versión de Windows o Microsoft 365. Para obtener una descripción de las condiciones de WebView2, vea Exploradores y controles de vista web que usan los complementos de Office. Para obtener más información sobre los tiempos de ejecución, vea Runtimes in Office Add-ins.

Este entorno de ejecución de solo JavaScript proporciona acceso a las API en el OfficeRuntime espacio de nombres que pueden usar las funciones personalizadas y el panel de tareas (que se ejecuta en un entorno de ejecución diferente) para almacenar datos.

Solicitud de datos externos

Dentro de una función personalizada, puede solicitar datos externos mediante el uso de una API como Fetch o mediante XmlHttpRequest (XHR), una API de web estándar que emite solicitudes HTTP para interactuar con los servidores.

Tenga en cuenta que las funciones personalizadas deben usar medidas de seguridad adicionales al crear XmlHttpRequests, lo que requiere la misma directiva de origen y CORS simple.

Una implementación simple de CORS no puede usar cookies y solo admite métodos simples (GET, HEAD, POST). CORS simple acepta encabezados simples con los nombres de campo Accept, Accept-Language, Content-Language. También puede usar un Content-Type encabezado en CORS simple, siempre que el tipo de contenido sea application/x-www-form-urlencoded, text/plaino multipart/form-data.

Almacenamiento y acceso a datos

Dentro de una función personalizada que no usa un entorno de ejecución compartido, puede almacenar y acceder a los datos mediante el objeto OfficeRuntime.storage . El Storage objeto es un sistema de almacenamiento de clave-valor persistente, sin cifrar, que proporciona una alternativa a localStorage, que no pueden usar las funciones personalizadas que usan el entorno de ejecución de solo JavaScript. El Storage objeto ofrece 10 MB de datos por dominio. Más de un complemento puede compartir dominios.

El Storage objeto es una solución de almacenamiento compartido, lo que significa que varias partes de un complemento pueden acceder a los mismos datos. Por ejemplo, los tokens para la autenticación de usuario pueden almacenarse en el Storage objeto porque se puede acceder a él mediante una función personalizada (mediante el entorno de ejecución solo javaScript) y un panel de tareas (mediante un entorno de ejecución de vista web completo). De forma similar, si dos complementos comparten el mismo dominio (por ejemplo, www.contoso.com/addin1, www.contoso.com/addin2), también se les permite compartir información de un lado a otro a través del Storage objeto . Tenga en cuenta que los complementos que tienen subdominios diferentes tendrán instancias diferentes de Storage (por ejemplo, subdomain.contoso.com/addin1, differentsubdomain.contoso.com/addin2).

Dado que el Storage objeto puede ser una ubicación compartida, es importante tener en cuenta que es posible invalidar los pares clave-valor.

Los métodos siguientes están disponibles en el Storage objeto .

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

Nota:

No hay ningún método para borrar toda la información (como clear). En su lugar, deberá usar removeItems para quitar varias entradas a la vez.

Ejemplo de OfficeRuntime.storage

En el ejemplo de código siguiente se llama al OfficeRuntime.storage.setItem método para establecer una clave y un valor en 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;
  });
}

Siguientes pasos

Obtenga información sobre cómo depurar funciones personalizadas.

Vea también