EPPlus, как проверить циклические ссылки?

Я использую библиотеку EPPlus для создания файла Excel, и мне было интересно, есть ли способ использовать эту библиотеку для проверки циклических ссылок в формуле?

Я знаю Microsoft Interop имеет эту функциональность с Range CircularReference { get; }, но я стараюсь его не использовать.


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


Ответы (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;
}
person Guy Cohen    schedule 05.01.2017