Avbryt eller avbryt formelberäkningen av arbetsboken
Möjliga användningsscenarier
Aspose.Cells tillhandahåller en mekanism för att avbryta eller avbryta formelberäkningen av arbetsboken med hjälp av interrupt()-metoden iAbstractCalculationMonitor klass. Detta är användbart när formelberäkningen av arbetsboken tar för mycket tid och du vill avbryta behandlingen.
Avbryt eller avbryt formelberäkningen av arbetsboken
Följande exempelkod implementerarbeforeCalculate() metod förAbstractCalculationMonitorklass. Inuti den här metoden hittar den cellnamnet med hjälp av rad- och kolumnindexparametrar. Om cellnamnet är B8, avbryter det beräkningsprocessen genom att anropa metoden AbstractCalculationMonitor.interrupt(). En gång betongklassen avAbstractCalculationMonitorklass implementeras, dess instans tilldelasCalculationOptions.CalculationMonitorfast egendom. Till sist,Workbook.calculateFormula() kallas förbigåendeBeräkningsalternativsom en parameter. Vänligen seexempel på Excel-filanvänds inuti koden såväl som konsolutgången för koden som anges nedan som referens.
Exempelkod
// 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); | |
} |
Konsolutgång
0----1----3----D2
0----4----6----G5
0----7----1----B8