ワークブックの数式計算を中断またはキャンセルする
Contents
[
Hide
]
考えられる使用シナリオ
Aspose.Cells は、AbstractCalculationMonitorクラス。これは、ワークブックの数式計算に時間がかかりすぎて処理をキャンセルしたい場合に便利です。
ワークブックの数式計算を中断またはキャンセルする
次のサンプル コードは、beforeCalculate() の方法AbstractCalculationMonitorクラス。このメソッド内で、行と列のインデックス パラメータを使用してセル名を見つけます。セル名が B8 の場合、AbstractCalculationMonitor.interrupt() メソッドを呼び出して計算プロセスを中断します。一度、具体的なクラスAbstractCalculationMonitorクラスが実装され、そのインスタンスが割り当てられますCalculationOptions.CalculationMonitor財産。ついに、Workbook.calculateFormula() を渡すことによって呼び出されます計算オプションパラメータとして。をご覧くださいサンプル Excel ファイル参照用に以下に示すコードのコンソール出力と同様に、コード内で使用されます。
サンプルコード
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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); | |
} |
コンソール出力
0----1----3----D2
0----4----6----G5
0----7----1----B8