
Estou usando um código para gerar uma planilha, incluindo uma fórmula para uma célula em determinadas linhas. Quando faço isso, há algo errado com a fórmula e, quando tento abrir a planilha, o Excel pergunta se deve consertar a planilha. Se eu disser que sim, ele remove todos os vestígios da minha fórmula da planilha. Se eu disser não, não termina de abrir a folha.
Existe uma maneira de abrir a planilha sem o reparo, para poder examinar a fórmula conforme ela é gerada pelo meu código. Se eu copiar e colar a fórmula em uma das células da qual ela foi removida, ela funcionará bem. Eu realmente preciso ver o que há de errado com a fórmula na minha planilha gerada ao abri-la. Existe alguma maneira de fazer isso?
Estou adicionando a fórmula usando o código abaixo na biblioteca EPPlus Excel:
for (var r = startAt + 2; r < endAt; r++)
{
var amountFormula =
$@"=SWITCH(C{r}; ISBLANK(D{r}); """"; ""Percentage""; IF(ISNUMBER(D{r}); D{r}; 0) * IF(ISNUMBER(E{r}); E{r}; 0) / 100; IF(ISNUMBER(D{r}); D{r}; 0) * IF(ISNUMBER(E{r}); E{r}; 0))";
ws.Cells[$"F{r}"].Formula = amountFormula;
}
Observe que esta fórmula funciona se eu substituir {r}
por um número de linha adequado e colar a fórmula na planilha.
Responder1
O Excel pergunta se deve reparar a planilha. Se eu disser que sim, ele remove todos os vestígios da minha fórmula da planilha. Se eu disser não, não termina de abrir a folha.
Acho que você tentou todas as suas opções aqui.
Uma solução alternativa pode ser inserir sua fórmula na célula como texto ( ws.Cells[$"F{r}"].Value = amountFormula;
), então você poderá abrir sua planilha e examinar sua fórmula.
(Se o Excel ainda reclamar da sua fórmula, você pode até adicionar um anterior '
:)ws.Cells[$"F{r}"].Value = "'" & amountFormula;