Interrumpir o Cancelar el Cálculo de Fórmulas de una Hoja de Cálculo

Escenarios de uso posibles

Aspose.Cells proporciona un mecanismo para interrumpir o cancelar el cálculo de fórmulas del libro de trabajo mediante el método interrupt() de la clase AbstractCalculationMonitor. Esto es útil cuando el cálculo de fórmulas del libro de trabajo está tardando demasiado tiempo y deseas cancelar su procesamiento.

Interrumpir o cancelar el cálculo de fórmulas de una hoja de cálculo

El siguiente código de ejemplo implementa el método beforeCalculate() de la clase AbstractCalculationMonitor. Dentro de este método, encuentra el nombre de la celda utilizando los parámetros de índice de fila y columna. Si el nombre de la celda es B8, interrumpe el proceso de cálculo llamando al método AbstractCalculationMonitor.interrupt(). Una vez que se implementa la clase concreta de la clase AbstractCalculationMonitor, se asigna su instancia a la propiedad CalculationOptions.CalculationMonitor. Finalmente, se llama a Workbook.calculateFormula() pasando CalculationOptions como parámetro. Consulta el archivo de Excel de ejemplo utilizado en el código, así como la salida de consola del código que se muestra a continuación para obtener una referencia.

Código de muestra

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

Salida de la consola

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

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

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