'Showing #value! before enable editing on excel if I write formula using epplus

Using C# .net core I am updating existing excel template with Data and formulas using EPPlus lib 4.5.3.3.

If you see the below screen shots all formula cells has '#value!' even after using calculate method in C# code (Just for reference attached xml screen short just after downloading excel before opening it). Auto calculation is also enabled in Excel.

In one of the blog mentioned to check the xml info,

My requirement is to upload this excel through code to sharepoint site and read the excel formula cells for other operations with out opening the excel manually.

is there any other way to calculate the formula cells form code and update the cell values?

I went through the Why won't this formula calculate unless i double click a cell? as well, but no luck.

enter image description here

enter image description here

using (ExcelPackage p = new ExcelPackage())
            {
                MemoryStream stream = new MemoryStream(byteArray);
                p.Load(stream);
                ExcelWorksheet worksheet = p.Workbook.Worksheets.FirstOrDefault(a => a.Name == "InputTemplate");
                worksheet.Calculate();
                if (worksheet != null)
                {
                    worksheet.Cells["A3"].Value = company.CompanyName;//// Company Name
                    worksheet.Cells["B3"].Value = product.Name;////peoduct name 
                    worksheet.Cells["C3"].Value = product.NetWeight;
                    worksheet.Cells["D3"].Value = product.ServingSize;
                    worksheet.Cells["E3"].Value = 0;

                    var produceAndIngredientDetailsForExcelList = await GetProduceAndIngredientDetails(companyId, productId);

                    ////rowIndex will be 3
                    WriteProduceAndIngredientDetailsInExcel(worksheet, produceAndIngredientDetailsForExcelList);

                    ///rowIndex will update based on no. of produce and then Agregates.
                    StageWiseAggregate(worksheet, produceAndIngredientDetailsForExcelList);

                    ////Write Total Impacts Row
                    TotalImpactsFormulaSection(worksheet);

                    worksheet.Calculate();
                }
                Byte[] bin = p.GetAsByteArray();
                return bin;
            }

Formula Code

 var columnIndex = 22;///"V" Column

        for (; columnIndex <= 27; columnIndex++)
        {
            var columnName = GetExcelColumnName(columnIndex);
            worksheet.Cells[currentRowIndex, columnIndex].Formula = $"=SUBTOTAL(109,{columnName}{firstRowIndex}:{columnName}{currentRowIndex - 1})";
        }


Solution 1:[1]

Found the solution for this issue from my Architect (kudos to him). I was writing formulas in wrong way by blindly fallowing tutorials like https://riptutorial.com/epplus/example/26433/add-formulas-to-a-cell

Note: don't follow link shown above.

We should not use "=" for formulas. I just removed it worked like charm

 var columnIndex = 22;///"V" Column

        for (; columnIndex <= 27; columnIndex++)
        {
            var columnName = GetExcelColumnName(columnIndex);
            worksheet.Cells[currentRowIndex, columnIndex].Formula = $"SUBTOTAL(109,{columnName}{firstRowIndex}:{columnName}{currentRowIndex - 1})";
        }

Here is the official tutorial which mentioned correctly. https://www.epplussoftware.com/en/Developers/ (check the second slide)

Working result:

enter image description here

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 marc_s