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