EPPlus如何检查循环引用?

3
我正在使用EPPlus库构建Excel文件,并想知道是否有一种方法可以使用该库来检查公式中的循环引用?
我知道Microsoft Interop具有Range CircularReference { get; }的功能,但我试图避免使用它。
1个回答

1
如果存在循环引用且在计算选项中不允许它,则在尝试计算时会抛出异常。
顺便说一句,默认情况下循环引用会抛出异常。要允许它们,请将属性更改为true。
您还可以计算整个工作表/工作簿。
检查单元格是否包含循环引用的示例代码:
//Assign Formula
var cell = worksheet.Cells["A2"]; //Example Cell
cell.Formula = "YourFormula";

//Initiate calculation option
var calculateOptions = new ExcelCalculationOption();
calculateOptions.AllowCirculareReferences = false;

bool isFormulaCircularReference = false;
try
{
    cell.Calculate(calculateOptions);
}
catch (CircularReferenceException ex)
{
    //If there is a circular reference this exception will be thrown
    isFormulaCircularReference = true;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接