Interrompere o Annullare il Calcolo della Formula del Workbook

Possibili Scenari di Utilizzo

Aspose.Cells fornisce un meccanismo per interrompere o annullare il calcolo delle formule su un workbook utilizzando il metodo AbstractCalculationMonitor.Interrupt(). Questo è utile quando il calcolo delle formule del workbook sta richiedendo troppo tempo e si desidera annullarne l’elaborazione.

Interrompere o annullare il calcolo della formula del foglio di lavoro

Il seguente codice di esempio implementa il metodo BeforeCalculate() della classe AbstractCalculationMonitor. All’interno di questo metodo, trova il nome della cella utilizzando i parametri dell’indice di riga e colonna. Se il nome della cella è B8, interrompe il processo di calcolo chiamando il metodo AbstractCalculationMonitor.Interrupt(). Una volta implementata la classe concreta della classe AbstractCalculationMonitor, la sua istanza viene assegnata alla proprietà CalculationOptions.CalculationMonitor. Infine, viene chiamato Workbook.CalculateFormula() passando CalculationOptions come parametro. Si prega di vedere il file Excel di esempio utilizzato all’interno del codice e l’output della console del codice sottostante come riferimento.

Codice di Esempio

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

Output della console

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

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

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