Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Use un entorno de ejecución compartido para compartir datos globales entre las funciones personalizadas y el panel de tareas del complemento de Excel. En este tutorial, agregará funciones y controles de panel de tareas que leen y actualizan la misma variable.
Requisitos previos
Complete el tutorial de funciones personalizadas de Excel y use el complemento que ha creado. El proyecto debe usar las funciones personalizadas de Excel mediante un tipo de proyecto en tiempo de ejecución compartido y un tipo de script de JavaScript .
Compartir el estado entre una función personalizada y un código de panel de tareas
Creación de funciones personalizadas para obtener o almacenar el estado compartido
En Visual Studio Code, abra src/functions/functions.js.
Al principio del archivo, agregue el código siguiente. Este código inicializa una variable global denominada
sharedState.window.sharedState = "empty";Agregue el código siguiente para crear una función personalizada que almacene valores en
sharedState./** * Saves a string value to shared state with the task pane * @customfunction STOREVALUE * @param {string} value String to write to shared state with task pane. * @return {string} A success value */ function storeValue(sharedValue) { window.sharedState = sharedValue; return "value stored"; }Agregue el código siguiente para crear una función personalizada que obtenga el valor actual de
sharedState./** * Gets a string value from shared state with the task pane * @customfunction GETVALUE * @returns {string} String value of the shared state with task pane. */ function getValue() { return window.sharedState; }Guarde el archivo.
Creación de controles del panel de tareas para trabajar con datos globales
Abra src/taskpane/taskpane.html.
Después del elemento de cierre
</main>, agregue el siguiente código HTML para crear controles que almacenen y recuperen datos globales.<ol> <li> Enter a value to send to the custom function and select <strong>Store</strong>. </li> <li> Enter <strong>=CONTOSO.GETVALUE()</strong> into a cell to retrieve it. </li> <li> To send data to the task pane, in a cell, enter <strong>=CONTOSO.STOREVALUE("new value")</strong> </li> <li>Select <strong>Get</strong> to display the value in the task pane.</li> </ol> <p>Store new value to shared state</p> <div> <input type="text" id="storeBox" /> <button onclick="storeSharedValue()">Store</button> </div> <p>Get shared state value</p> <div> <input type="text" id="getBox" /> <button onclick="getSharedValue()">Get</button> </div>Antes del elemento de cierre
</body>, agregue el siguiente script para controlar los eventos de botón Store y Get .<script> function storeSharedValue() { let sharedValue = document.getElementById('storeBox').value; window.sharedState = sharedValue; } function getSharedValue() { document.getElementById('getBox').value = window.sharedState; } </script>Guarde el archivo.
Cree el proyecto.
npm run build
Probar el uso compartido de datos entre las funciones personalizadas y el panel de tareas
- Inicie el proyecto.
npm run start
- En el panel de tareas, escriba un valor y, a continuación, seleccione Almacenar.
- En una celda de Excel, escriba
=CONTOSO.GETVALUE()para recuperar el mismo valor. - En otra celda, escriba
=CONTOSO.STOREVALUE("new value")para actualizar el valor compartido. - En el panel de tareas, seleccione Obtener para mostrar el valor actualizado.
Nota:
Un entorno de ejecución compartido también permite que las funciones personalizadas llamen a algunas API de Office. Para obtener más información, vea Llamar a las API de Microsoft Excel desde una función personalizada.
Cuando esté listo para detener el servidor de desarrollo y desinstalar el complemento, ejecute el siguiente comando.
npm run stop