EPPlus как да проверя за кръгови препратки?

Използвам библиотеката EPPlus, за да създам файл на Excel и се чудех дали има начин да използвам тази библиотека за проверка за кръгови препратки във формула?

Познавам Microsoft Interop има тази функционалност с Range CircularReference { get; }, но се опитвам да избягвам използването му.


person wonea    schedule 08.01.2013    source източник


Отговори (1)


Ако има кръгова препратка и не я разрешите в опциите за изчисление, ще бъде хвърлено изключение при опит за изчисление.

BTW, по подразбиране кръговите препратки хвърлят изключения. За да им позволите да променят свойството на 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;
}
person Guy Cohen    schedule 05.01.2017