Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Use um runtime compartilhado para compartilhar dados globais entre as funções personalizadas do suplemento do Excel e o painel de tarefas. Neste tutorial, você adiciona funções e controles do painel de tarefas que leem e atualizam a mesma variável.
Pré-requisitos
Conclua o tutorial de funções personalizadas do Excel e use o suplemento que você criou. O projeto deve usar as Funções Personalizadas do Excel usando um tipo de projeto de Tempo de Execução Compartilhado e um tipo de script JavaScript .
Compartilhar o estado entre as funções personalizadas e o código do painel de tarefas
Criar funções personalizadas para obter ou armazenar o estado compartilhado
Em Visual Studio Code, abra src/functions/functions.js.
No início do arquivo, adicione o seguinte código. Este código inicializa uma variável global chamada
sharedState.window.sharedState = "empty";Adicione o código a seguir para criar uma função personalizada que armazena valores em
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"; }Adicione o código a seguir para criar uma função personalizada que obtém o valor atual 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; }Salve o arquivo.
Criar controles do painel de tarefas para trabalhar com dados globais
Abra src/taskpane/taskpane.html.
Após o elemento de fechamento
</main>, adicione o HTML a seguir para criar controles que armazenam e recuperam dados globais.<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 do elemento de fechamento
</body>, adicione o script a seguir para lidar com os eventos de botão Store e Get .<script> function storeSharedValue() { let sharedValue = document.getElementById('storeBox').value; window.sharedState = sharedValue; } function getSharedValue() { document.getElementById('getBox').value = window.sharedState; } </script>Salve o arquivo.
Compile o projeto.
npm run build
Experimente compartilhar dados entre as funções personalizadas e o painel de tarefas
- Inicie o projeto.
npm run start
- No painel de tarefas, insira um valor e selecione Armazenar.
- Em uma célula do Excel, Enter
=CONTOSO.GETVALUE()para recuperar o mesmo valor. - Em outra célula, enter
=CONTOSO.STOREVALUE("new value")para atualizar o valor compartilhado. - No painel de tarefas, selecione Obter para exibir o valor atualizado.
Observação
Um tempo de execução compartilhado também permite que funções personalizadas chamem algumas APIs do Office. Para obter mais informações, consulte Chamar APIs do Microsoft Excel de uma função personalizada.
Quando você estiver pronto para interromper o servidor de desenvolvimento e desinstalar o suplemento, execute o comando a seguir.
npm run stop