Por que essa fórmula não é calculada, a menos que eu dê um clique duplo em uma célula?
Veja isso.xlsx Arquivo. Sem macros, é claro!
Ao abrir o arquivo, você verá as seguintes células:
[Series ]
[10 ]
[20 ]
[30 ]
[ ]
[ ]
[=SUM(B3:B7)]
A soma não calcula, a menos que você dê um clique duplo e pressione enter em uma das três células inferiores (por exemplo, duas em branco, = SUM (B3: B7))
Mais estranho ainda, quando você "dá vida à fórmula", se você salvar a pasta de trabalho e reabri-la, ela se comportará bem.
Tentei alterar a extensão para .zip e brincar com o Xml para ver se conseguia identificar as alterações feitas salvando-a depois que ele começou a funcionar, mas só vi que o número da versão havia sido alterado.
Nós. Ird.
Além disso, tentei salvar isso em um formato anterior do Excel e o problema permaneceu.
Eu só quero reiterar - a planilha anexada é um arquivo .xlsx e, portanto, não possui macros! Realmente, não há outra maneira de explicar esse problema sem a planilha em anexo. Felizmente, colocando 50 pontos de reputação em risco, alguém confiará que eu não sou um garoto de script e darei uma olhada!
Criei o arquivo usando o EPPlus e o seguinte código C #:
public void Generate(string outputPath)
{
using (FileStream fsTemplate = new FileStream(TemplatePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
using (FileStream fsReport = new FileStream(outputPath, FileMode.Create, FileAccess.ReadWrite, FileShare.None))
{
using (ExcelPackage ep = new ExcelPackage(fsReport, fsTemplate))
{
using (ExcelWorksheet ws = ep.Workbook.Worksheets[TemplateSheetName])
{
//
int iHeadingsRow = 2;
int dataRowIndex = iHeadingsRow + 1;
//
List<decimal> list = new List<decimal>() { 10, 20, 30 };
//
foreach (var number in list)
{
ws.Cells[dataRowIndex, 2].Value = list[dataRowIndex - iHeadingsRow - 1];
//
ws.InsertRow(dataRowIndex + 1, 1, iHeadingsRow + 1);
//
dataRowIndex++;
}
//
ep.Save();
}
}
}
}
}
Gostaria de enfatizar que este não é um problema do EPPlus! Esse é um problema comum com o Excel abrindo uma pasta de trabalho válida e recusando-se a calcular uma fórmula. Formatar as células como numéricas não faz diferença. Estou usando o EPPlus para criar arquivos Excel funcionais há meses e não instalei nenhuma atualização no EPPlus, por isso deve haver um problema com o Excel, certo ?!
A solução deve estar na diferença entre o arquivo original e a versão que foi lançada em vida e salva. Eu simplesmente não consigo identificar exatamente qual é essa diferença ...
O = SUM (B, 3: B7) já está presente no arquivo de modelo, junto com o texto 'Série'. O código adiciona apenas os itens {10,20,30} à planilha.