Unterbrechen oder brechen Sie die Formelberechnung der Arbeitsmappe ab

Mögliche Nutzungsszenarien

Aspose.Cells bietet einen Mechanismus zum Unterbrechen oder Abbrechen der Formelberechnung der Arbeitsmappe mithilfe vonAbstractCalculationMonitor.Interrupt()Methode. Dies ist nützlich, wenn die Formelberechnung der Arbeitsmappe zu viel Zeit in Anspruch nimmt und Sie ihre Verarbeitung abbrechen möchten.

Unterbrechen oder brechen Sie die Formelberechnung der Arbeitsmappe ab

Der folgende Beispielcode implementiert dieVorBerechnen()Methode vonAbstractCalculationMonitor Klasse. Innerhalb dieser Methode findet es den Zellennamen mithilfe von Zeilen- und Spaltenindexparametern. Wenn der Zellenname B8 ist, unterbricht es den Berechnungsprozess, indem es die aufruftAbstractCalculationMonitor.Interrupt()Methode. Einmal die konkrete Klasse vonAbstractCalculationMonitorKlasse implementiert ist, wird ihre Instanz zugewiesenBerechnungsoptionen.BerechnungsmonitorEigentum. Endlich,Workbook.CalculateFormula()wird durch Vorbeigehen aufgerufenBerechnungsoptionen als Parameter. Bitte sehen Sie sich … anBeispiel-Excel-Dateiinnerhalb des Codes sowie der Konsolenausgabe des unten angegebenen Codes als Referenz verwendet.

Beispielcode

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
class InterruptOrCancelFormulaCalculationOfWorkbook
{
//Implement calculation monitor class
class clsCalculationMonitor : AbstractCalculationMonitor
{
public override void BeforeCalculate(int sheetIndex, int rowIndex, int colIndex)
{
//Find the cell name
string cellName = CellsHelper.CellIndexToName(rowIndex, colIndex);
//Print the sheet, row and column index as well as cell name
System.Diagnostics.Debug.WriteLine(sheetIndex + "----" + rowIndex + "----" + colIndex + "----" + cellName);
//If cell name is B8, interrupt/cancel the formula calculation
if (cellName == "B8")
{
this.Interrupt("Interrupt/Cancel the formula calculation");
}//if
}//BeforeCalculate
}//clsCalculationMonitor
public static void Run()
{
//Load the sample Excel file
Workbook wb = new Workbook("sampleCalculationMonitor.xlsx");
//Create calculation options and assign instance of calculation monitor class
CalculationOptions opts = new CalculationOptions();
opts.CalculationMonitor = new clsCalculationMonitor();
//Calculate formula with calculation options
wb.CalculateFormula(opts);
}
}

Konsolenausgabe

 0----1----3----D2

0----4----6----G5

0----7----1----B8