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 de un libro de trabajo usando el método AbstractCalculationMonitor.Interrupt(). Esto es útil cuando el cálculo de fórmulas de un libro de trabajo lleva 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 muestra implementa el método BeforeCalculate() de la clase AbstractCalculationMonitor. Dentro de este método, encuentra el nombre de la celda usando 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, su instancia se asigna a la propiedad CalculationOptions.CalculationMonitor. Finalmente, se llama a Workbook.CalculateFormula() pasando CalculationOptions como parámetro. Consulta también el archivo de Excel de muestra utilizado dentro del código, así como la salida de consola del código proporcionado a continuación como referencia.
Código de muestra
// 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); | |
} | |
} |
Salida de la consola
0----1----3----D2
0----4----6----G5
0----7----1----B8