Interrompere o Annullare il Calcolo della Formula del Workbook
Possibili Scenari di Utilizzo
Aspose.Cells fornisce un meccanismo per interrompere o annullare il calcolo della formula del foglio di lavoro utilizzando il metodo interrupt() della classe AbstractCalculationMonitor. Questo è utile quando il calcolo della formula del foglio di lavoro 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, si chiama Workbook.calculateFormula() passando CalculationOptions come parametro. Si prega di vedere ilsample file Excel utilizzato all’interno del codice così come l’output della console del codice seguente per riferimento.
Codice di Esempio
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
//Implement calculation monitor class | |
class clsCalculationMonitor extends AbstractCalculationMonitor | |
{ | |
public 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.out.println(sheetIndex + "----" + rowIndex + "----" + colIndex + "----" + cellName); | |
//If cell name is B8, interrupt/cancel the formula calculation | |
if (cellName.equals("B8") == true) | |
{ | |
this.interrupt("Interrupt/Cancel the formula calculation"); | |
}//if | |
}//beforeCalculate | |
}//clsCalculationMonitor | |
//--------------------------------------------------------- | |
//--------------------------------------------------------- | |
public void Run() throws Exception | |
{ | |
//Load the sample Excel file | |
Workbook wb = new Workbook(srcDir + "sampleCalculationMonitor.xlsx"); | |
//Create calculation options and assign instance of calculation monitor class | |
CalculationOptions opts = new CalculationOptions(); | |
opts.setCalculationMonitor(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