Los complementos de Office son bsicamente aplicaciones web que se ejecutan en el entorno sin estado de un iframe del explorador o un control de vista web. (En adelante, para mayor brevedad, en este artculo se usa "control de explorador" para significar "control de explorador o vista web"). Cuando est en uso, es posible que el complemento tenga que conservar los datos para mantener la continuidad de determinadas operaciones o caractersticas entre sesiones. Por ejemplo, es posible que su complemento tenga configuraciones personalizadas u otros valores que necesite guardar y recargar la prxima vez que se inicialice, como puede ser la vista preferida de un usuario o una ubicacin predeterminada. Para hacerlo, puede:
Si necesita conservar el estado de los documentos, como el seguimiento de las preferencias del usuario en todos los documentos que abran, deber usar un enfoque diferente. Por ejemplo, podra usar el inicio de sesin nico para obtener la identidad del usuario y, a continuacin, guardar el identificador de usuario y su configuracin en una base de datos en lnea.
Algunos exploradores o la configuracin del explorador del usuario pueden bloquear las tcnicas de almacenamiento basadas en exploradores. Debe probar la disponibilidad como se documenta en Uso de la API de almacenamiento web.
Como procedimiento recomendado, los datos privados deben almacenarse en particiones localStorage. Office.context.partitionKey proporciona una clave para su uso con el almacenamiento local. Esto garantiza que los datos almacenados en el almacenamiento local solo estn disponibles en el mismo contexto. En el ejemplo siguiente se muestra cmo usar la clave de particin con localStorage. Tenga en cuenta que la clave de particin no est definida en entornos sin particiones, como los controles del explorador para aplicaciones windows.
A partir de la versin 115 de los exploradores basados en Chromium, como Chrome y Edge, la creacin de particiones de almacenamiento est habilitada para evitar el seguimiento entre sitios de canal lateral especfico (consulte tambin las directivas del explorador Microsoft Edge). De forma similar a la creacin de particiones basada en claves de Office, los datos almacenados por las API de almacenamiento, como el almacenamiento local, solo estn disponibles para contextos con el mismo origen y el mismo sitio de nivel superior.
Excel, Word y Outlook proporcionan API especficas de la aplicacin para guardar la configuracin y otros datos. Use estas en lugar de las API comunes mencionadas ms adelante en este artculo para que el complemento siga patrones coherentes y est optimizado para la aplicacin de destino.
Las API de JavaScript especficas de la aplicacin para Excel y para Word tambin proporcionan acceso a la configuracin personalizada. La configuracin es nica para un nico emparejamiento de archivos y complementos de Excel. Para obtener ms informacin, vea Excel.SettingCollection y Word. SettingCollection.
Los formatos de archivo .xlsx y .docx de Open XML permiten que el complemento inserte datos XML personalizados en el libro de Excel o Word documento. Estos datos se conservan con el archivo, independientemente del complemento.
Un Word. Document y Excel.Workbook contienen , CustomXmlPartCollectionque es una lista de CustomXmlParts. Estos dan acceso a las cadenas XML y a un nico identificador correspondiente. Al almacenar estos identificadores como configuracin, el complemento puede mantener las claves de los elementos XML entre sesiones.
En los ejemplos siguientes se muestra cmo usar elementos XML personalizados con un libro de Excel. El primer bloque de cdigo muestra cmo insertar datos XML. Almacena una lista de revisores y luego, usa la configuracin del libro para guardar el id del XML para una recuperacin futura. El segundo bloque muestra cmo acceder a ese XML ms adelante. La configuracin de "ContosoReviewXmlPartId" se carga y se pasa al customXmlParts del libro. Luego, los datos XML se imprimen en la consola. El proceso es funcionalmente equivalente en Word, que usa Document.customXmlParts en lugar de Workbook.customXmlParts.
Excel.DocumentProperties.custom y Word. Las propiedades DocumentProperties.customProperties representan colecciones de pares clave-valor para las propiedades definidas por el usuario. En el siguiente ejemplo de Excel se muestra cmo crear una propiedad personalizada denominada Introduction con el valor "Hello" y, a continuacin, recuperarla.
En Excel, las propiedades personalizadas tambin se pueden establecer en el nivel de hoja de clculo con la propiedad Worksheet.customProperties . Son similares a las propiedades personalizadas de nivel de documento, salvo que la misma clave se puede repetir en distintas hojas de clculo.
Para obtener informacin sobre cmo guardar la configuracin en un complemento de Outlook, vea Obtener y establecer metadatos de complemento para un complemento de Outlook y Obtener y establecer encabezados de Internet en un mensaje en un complemento de Outlook.
Las API comunes proporcionan objetos para guardar el estado del complemento entre sesiones. Los valores de configuracin guardados estn asociados con el identificador del complemento que los cre. Internamente, los datos a los que se accede con los Settingsobjetos , CustomPropertieso RoamingSettings se almacenan como un objeto de notacin de objetos JavaScript serializado (JSON) que contiene pares nombre-valor. El nombre (clave) de cada valor debe ser , stringy el valor almacenado puede ser una funcin de JavaScript string, number, dateo , pero objectno una funcin.
Despus de que se haya guardado el contenedor de propiedades de configuracin durante la sesin anterior del complemento, puede cargarse al iniciar la aplicacin o en cualquier momento posterior, durante la sesin actual del complemento. Durante la sesin, la configuracin se administra completamente en la memoria mediante los getmtodos , sety remove del objeto que corresponde al tipo de configuracin que se va a crear (Configuracin, CustomProperties o RoamingSettings).
Para conservar las adiciones, actualizaciones o eliminaciones realizadas durante la sesin actual del complemento en la ubicacin de almacenamiento, debe llamar al saveAsync mtodo del objeto correspondiente utilizado para trabajar con ese tipo de configuracin. Los getmtodos , sety remove solo funcionan en la copia en memoria del contenedor de propiedades de configuracin. Si el complemento se cierra sin llamar a saveAsync, se perdern los cambios realizados en la configuracin durante esa sesin.
Para conservar la configuracin personalizada o de estado de un complemento de contenido o panel de tareas para Word, Excel o PowerPoint, use el objeto Settings y sus mtodos. El contenedor de propiedades creado con los mtodos del Settings objeto solo est disponible para la instancia del complemento de contenido o panel de tareas que lo cre y solo desde el documento en el que se guarda.
El Settings objeto se carga automticamente como parte del objeto Document y est disponible cuando se activa el panel de tareas o el complemento de contenido. Despus de crear una instancia del Document objeto, puede acceder al Settings objeto con la propiedad settings del Document objeto. Durante la duracin de la sesin, puede usar los Settings.getmtodos , Settings.sety Settings.remove para leer, escribir o quitar la configuracin persistente y el estado del complemento de la copia en memoria del contenedor de propiedades.
Dado que los mtodos set y remove solo funcionan con la copia en memoria del contenedor de propiedades de configuracin, para guardar la configuracin nueva o modificada en el documento al que est asociado el complemento, debe llamar al mtodo Settings.saveAsync .
En el ejemplo de cdigo siguiente se muestra cmo usar el mtodo Settings.set para crear una configuracin llamada 'themeColor' con el valor 'green'. El primer parmetro del mtodo set es el nombre (Id) que distingue maysculas de minsculas de la configuracin que se va a establecer o crear. El segundo parmetro es el valor (value) de la configuracin.
Si la configuracin no existe an, se crea una con el nombre especificado o, si ya existe, se actualiza su valor. Use el Settings.saveAsync mtodo para conservar la configuracin nueva o actualizada en el documento.
En el ejemplo siguiente se muestra cmo usar el mtodo Settings.get para obtener el valor de una configuracin llamada "themeColor". El nico parmetro del get mtodo es el nombre que distingue maysculas de minsculas de la configuracin.
En el ejemplo siguiente se muestra cmo usar el mtodo Settings.remove para quitar una configuracin llamada "themeColor". El nico parmetro del remove mtodo es el nombre que distingue maysculas de minsculas de la configuracin.
Para guardar las adiciones, cambios o eliminaciones que realice el complemento en la copia en memoria del contenedor de propiedades de la configuracin durante la sesin actual, es necesario llamar al mtodo Settings.saveAsync para almacenarlos en el documento. El nico parmetro del mtodo es la saveAsyncdevolucin de llamada, que es una funcin de devolucin de llamada con un nico parmetro.
La funcin annima que se pasa al saveAsync mtodo como parmetro de devolucin de llamada se ejecuta cuando se completa la operacin. El parmetro asyncResult de la devolucin de llamada proporciona acceso a un AsyncResult objeto que contiene el estado de la operacin. En el ejemplo, la funcin comprueba la AsyncResult.status propiedad para ver si la operacin de guardado se realiz correctamente o no y, a continuacin, muestra el resultado en la pgina del complemento.
Un elemento XML personalizado es una opcin de almacenamiento disponible para cuando quiera almacenar informacin que tenga un carcter estructurado o necesite que los datos sean accesibles entre las instancias del complemento. Tenga en cuenta que otros complementos tambin pueden acceder a los datos almacenados de esta manera. Puede conservar el marcado XML personalizado en un complemento de panel de tareas para Word (y para Excel y Word mediante la API especfica de la aplicacin, como se mencion en el prrafo anterior). En Word, puede usar el objeto CustomXmlPart y sus mtodos. El cdigo siguiente crea un elemento XML personalizado y muestra su identificador y, a continuacin, su contenido en divs en la pgina. Tenga en cuenta que debe haber un xmlns atributo en la cadena XML.
d3342ee215