Class AbstractCalculationMonitor
Namespace: Aspose.Cells
Assembly: Aspose.Cells.dll (25.2.0)
Монітор для відстеження прогресу обчислення формули.
public abstract class AbstractCalculationMonitor
Спадкування
object ← AbstractCalculationMonitor
Спадковані члени
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Приклади
Workbook wb = new Workbook("calc.xlsx");
CalculationOptions opts = new CalculationOptions();
opts.CalculationMonitor = new MyCalculationMonitor();
wb.CalculateFormula(opts);
class MyCalculationMonitor : AbstractCalculationMonitor
{
public override void BeforeCalculate(int sheetIndex, int rowIndex, int colIndex)
{
if(sheetIndex!=0 || rowIndex!=0 || colIndex!=0)
{
return;
}
Console.WriteLine("Клітинка A1 буде обчислена.");
}
}
Конструктори
AbstractCalculationMonitor()
protected AbstractCalculationMonitor()
Властивості
CalculatedValue
Отримує нове обчислене значення клітинки. Слід використовувати тільки в Aspose.Cells.AbstractCalculationMonitor.AfterCalculate(System.Int32,System.Int32,System.Int32).
public object CalculatedValue { get; }
Значення властивості
OriginalValue
Отримує старе значення обчисленої клітинки. Слід використовувати тільки в Aspose.Cells.AbstractCalculationMonitor.BeforeCalculate(System.Int32,System.Int32,System.Int32) та Aspose.Cells.AbstractCalculationMonitor.AfterCalculate(System.Int32,System.Int32,System.Int32).
public object OriginalValue { get; }
Значення властивості
ValueChanged
Чи було змінено значення клітинки після обчислення. Слід використовувати тільки в Aspose.Cells.AbstractCalculationMonitor.AfterCalculate(System.Int32,System.Int32,System.Int32).
public bool ValueChanged { get; }
Значення властивості
Методи
AfterCalculate(int, int, int)
Реалізуйте цей метод, щоб виконати бізнес-логіку після обчислення однієї клітинки.
public virtual void AfterCalculate(int sheetIndex, int rowIndex, int colIndex)
Параметри
sheetIndex
int
Індекс аркуша, до якого належить клітинка.
rowIndex
int
Індекс рядка клітинки
colIndex
int
Індекс стовпця клітинки
BeforeCalculate(int, int, int)
Реалізуйте цей метод, щоб виконати бізнес-логіку перед обчисленням однієї клітинки.
public virtual void BeforeCalculate(int sheetIndex, int rowIndex, int colIndex)
Параметри
sheetIndex
int
Індекс аркуша, до якого належить клітинка.
rowIndex
int
Індекс рядка клітинки
colIndex
int
Індекс стовпця клітинки
Interrupt(string)
protected void Interrupt(string msg)
Параметри
msg
string
OnCircular(IEnumerator)
Реалізуйте цей метод, щоб виконати бізнес-логіку під час обчислення формул з круговими посиланнями.
public virtual bool OnCircular(IEnumerator circularCellsData)
Параметри
circularCellsData
IEnumerator
IEnumerator з елементами Aspose.Cells.CalculationCell, що представляють клітинки, які залежать від кругових посилань.
Повертає
Чи потрібно формульному движку обчислити ці клітинки в круговій залежності після цього виклику. True, щоб дозволити формульному движку продовжити обчислення для них. False, щоб дозволити формульному движку просто позначити ці клітинки як Обчислені.
Примітки
У реалізації користувач також може встановити очікуване значення як обчислений результат для частини/всіх цих клітинок, щоб формульний движок не обчислював їх рекурсивно.