Class AbstractCalculationMonitor

Class AbstractCalculationMonitor

Namespace: Aspose.Cells
Assembly: Aspose.Cells.dll (25.2.0)

Монітор для відстеження прогресу обчислення формули.

public abstract class AbstractCalculationMonitor

Спадкування

objectAbstractCalculationMonitor

Спадковані члени

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; }

Значення властивості

object

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; }

Значення властивості

object

ValueChanged

Чи було змінено значення клітинки після обчислення. Слід використовувати тільки в Aspose.Cells.AbstractCalculationMonitor.AfterCalculate(System.Int32,System.Int32,System.Int32).

public bool ValueChanged { get; }

Значення властивості

bool

Методи

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, що представляють клітинки, які залежать від кругових посилань.

Повертає

bool

Чи потрібно формульному движку обчислити ці клітинки в круговій залежності після цього виклику. True, щоб дозволити формульному движку продовжити обчислення для них. False, щоб дозволити формульному движку просто позначити ці клітинки як Обчислені.

Примітки

У реалізації користувач також може встановити очікуване значення як обчислений результат для частини/всіх цих клітинок, щоб формульний движок не обчислював їх рекурсивно.

 Українська