using GemBox.Spreadsheet;
public static void Main()
SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");
var workbook = new ExcelFile();
var worksheet = workbook.Worksheets.Add("Formula Calculation");
var row = worksheet.Rows[0];
row.Style.Font.Weight = ExcelFont.BoldWeight;
var column = worksheet.Columns[0];
column.SetWidth(250, LengthUnit.Pixel);
column.Style.HorizontalAlignment = HorizontalAlignmentStyle.Left;
column = worksheet.Columns[1];
column.SetWidth(250, LengthUnit.Pixel);
column.Style.HorizontalAlignment = HorizontalAlignmentStyle.Right;
worksheet.Cells["A1"].Value = "Formula";
worksheet.Cells["B1"].Value = "Calculated value";
worksheet.Cells["A2"].Value = "1.50";
worksheet.Cells["A3"].Value = "=A2*2";
worksheet.Cells["A4"].Value = "2.30";
worksheet.Cells["A5"].Value = "=A4*2";
worksheet.Cells["A6"].Value = "1.30";
worksheet.Cells["A7"].Value = "=A6*2";
while (worksheet.Cells[rowIndex, 0].ValueType != CellValueType.Null)
worksheet.Cells[rowIndex, 1].Formula = worksheet.Cells[rowIndex++, 0].StringValue;
worksheet.Cells["B2"].Calculate();
worksheet.Parent.Calculate();
decimal auxDecimal = 1.569m;
Console.WriteLine(string.Format("{0:0.00}", auxDecimal));
Console.WriteLine(worksheet.Cells["A2"].Name +":" + worksheet.Cells["A2"].Value + "\t" + worksheet.Cells["A3"].Value + "\t" + worksheet.Cells["B3"].Value );
Console.WriteLine(worksheet.Cells["A4"].Name +":" + worksheet.Cells["A4"].Value + "\t" +worksheet.Cells["A5"].Value + "\t" + worksheet.Cells["B5"].Value );
Console.WriteLine(worksheet.Cells["A6"].Name +":" + worksheet.Cells["A6"].Value + "\t" +worksheet.Cells["A7"].Value + "\t" + worksheet.Cells["B7"].Value );
workbook.Save("Formula Calculation.xlsx");