Interrompere o annullare il calcolo della formula della cartella di lavoro
Possibili scenari di utilizzo
Aspose.Cells fornisce un meccanismo per interrompere o annullare il calcolo della formula della cartella di lavoro utilizzando ilAbstractCalculationMonitor.Interrupt()metodo. Ciò è utile quando il calcolo della formula della cartella di lavoro richiede troppo tempo e si desidera annullarne l’elaborazione.
Interrompere o annullare il calcolo della formula della cartella di lavoro
Il codice di esempio seguente implementa ilPrima di Calcola()metodo diAbstractCalculationMonitor classe. 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 fileAbstractCalculationMonitor.Interrupt()metodo. Una volta, la classe concreta diAbstractCalculationMonitorclass è implementata, la sua istanza è assegnata aCalculationOptions.CalculationMonitorproprietà. Infine,Workbook.CalculateFormula()è chiamato di passaggioOpzioni di calcolo come parametro. Si prega di consultare ilesempio di file Excelutilizzato all’interno del codice così come l’output della console del codice indicato di seguito per riferimento.
Codice d’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); | |
} | |
} |
Uscita console
0----1----3----D2
0----4----6----G5
0----7----1----B8