Compartilhar via


Trabalhar com o modo de pré-visualização do valor da fórmula nas suas funções personalizadas

Pode controlar a forma como a função personalizada calcula os resultados ao participar no modo de pré-visualização do valor da fórmula. O modo de pré-visualização do valor da fórmula é uma funcionalidade que permite aos utilizadores finais selecionar partes de uma fórmula enquanto editam a célula para pré-visualizar os valores. Esta funcionalidade ajuda os utilizadores a avaliar a fórmula à medida que a editam. A imagem seguinte mostra um exemplo do utilizador a editar uma fórmula e a selecionar o texto A1+A2. O modo de pré-visualização de fórmulas mostra o valor 7 acima.

Captura de ecrã do editor de fórmulas do Excel com A1+A2 selecionado e um valor de pré-visualização de 7 apresentado acima do editor de fórmulas.

Por predefinição, as funções personalizadas (por exemplo =getHousePrice(A1), ) podem ser pré-visualizadas pelo utilizador. No entanto, a lista seguinte mostra alguns cenários nos quais poderá querer controlar a forma como a função personalizada participa no modo de pré-visualização do valor da fórmula.

  • A função personalizada chama uma ou mais APIs que cobram uma taxa pela sua utilização.
  • A sua função personalizada acede a um ou mais recursos escassos, como bases de dados.
  • A função personalizada demora muito tempo a calcular o resultado e não seria útil para um utilizador durante os fins de pré-visualização.

Em alternativa, pode alterar o comportamento da sua função personalizada para devolver um valor simulado. Para tal, utilize a invocation.isInValuePreview propriedade só de leitura. O seguinte exemplo de código mostra uma função personalizada de exemplo com o nome getHousePrice que procura os preços das casas através de uma API monetizada. Se isInValuePreview for true, a função personalizada devolve um número simulado a ser utilizado e evita incorrer em qualquer custo. Se isInValuePreview for false, a função personalizada chama a API e devolve o valor real do preço da casa para utilização na folha de cálculo do Excel.

/**
 * Get the listing price for a house on the market for the given address.
 * @customfunction
 * @param address The address of the house.
 * @param invocation Custom function handler.
 * @returns The price of the house at the address.
 */
export function getHousePrice(address: string, invocation: CustomFunctions.Invocation): number {
  // Check if this call is for formula value preview mode.
  if (invocation.isInValuePreview) { 
    // Avoid long-running expensive service calls. 
    // Return a useable but fake number.
    return 450000; 
  } else { 
    // Make the actual service calls in this block. 
    const price = callHouseServiceAPI(address);
    return price; 
  } 
}

Confira também