diff --git a/FAQ/Circular Reference/.NET/Circular Reference/Circular Reference.slnx b/FAQ/Circular Reference/.NET/Circular Reference/Circular Reference.slnx new file mode 100644 index 00000000..ae21e373 --- /dev/null +++ b/FAQ/Circular Reference/.NET/Circular Reference/Circular Reference.slnx @@ -0,0 +1,3 @@ + + + diff --git a/FAQ/Circular Reference/.NET/Circular Reference/Circular Reference/Circular Reference.csproj b/FAQ/Circular Reference/.NET/Circular Reference/Circular Reference/Circular Reference.csproj new file mode 100644 index 00000000..d52bd517 --- /dev/null +++ b/FAQ/Circular Reference/.NET/Circular Reference/Circular Reference/Circular Reference.csproj @@ -0,0 +1,24 @@ + + + + Exe + net8.0 + Circular_Reference + enable + enable + + + + + + + + + Always + + + Always + + + + diff --git a/FAQ/Circular Reference/.NET/Circular Reference/Circular Reference/Data/InputTemplate.xlsx b/FAQ/Circular Reference/.NET/Circular Reference/Circular Reference/Data/InputTemplate.xlsx new file mode 100644 index 00000000..b3339c89 Binary files /dev/null and b/FAQ/Circular Reference/.NET/Circular Reference/Circular Reference/Data/InputTemplate.xlsx differ diff --git a/FAQ/Circular Reference/.NET/Circular Reference/Circular Reference/Output/.gitkeep b/FAQ/Circular Reference/.NET/Circular Reference/Circular Reference/Output/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/FAQ/Circular Reference/.NET/Circular Reference/Circular Reference/Program.cs b/FAQ/Circular Reference/.NET/Circular Reference/Circular Reference/Program.cs new file mode 100644 index 00000000..8e4ac8f2 --- /dev/null +++ b/FAQ/Circular Reference/.NET/Circular Reference/Circular Reference/Program.cs @@ -0,0 +1,30 @@ +using Syncfusion.XlsIO; + +class Program +{ + static void Main(string[] args) + { + // Create a new Excel application instance + using (ExcelEngine excelEngine = new ExcelEngine()) + { + IApplication application = excelEngine.Excel; + IWorkbook workbook = application.Workbooks.Open(Path.GetFullPath("Data/InputTemplate.xlsx")); + + foreach (IWorksheet worksheetxls in workbook.Worksheets) + { + worksheetxls.EnableSheetCalculations(); + worksheetxls.CalcEngine.AllowShortCircuitIFs = true; + worksheetxls.CalcEngine.UseFormulaValues = true; + // Enable circular reference handling + worksheetxls.CalcEngine.ThrowCircularException = true; + worksheetxls.CalcEngine.IterationMaxCount = 1000; + } + + IWorksheet worksheet = workbook.Worksheets.First(); + Console.WriteLine(worksheet["I234"].CalculatedValue); + Console.WriteLine(worksheet["J234"].CalculatedValue); + + workbook.SaveAs(Path.GetFullPath("Output/Output.xlsx")); + } + } +}