EPPlusライブラリを使用してExcelファイルを作成していますが、このライブラリを使用して数式内の循環参照をチェックする方法があるかどうか疑問に思っていましたか?
MicrosoftInteropがRangeCircularReference {get; }、しかし私はそれを使用しないようにしています。
EPPlusライブラリを使用してExcelファイルを作成していますが、このライブラリを使用して数式内の循環参照をチェックする方法があるかどうか疑問に思っていましたか?
MicrosoftInteropがRangeCircularReference {get; }、しかし私はそれを使用しないようにしています。
循環参照があり、それを計算オプションで許可しない場合、計算しようとすると例外がスローされます。
ところで、デフォルトでは循環参照は例外をスローします。それらを許可するには、プロパティを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;
}