انقطاع أو إلغاء حساب الصيغة لورقة العمل
سيناريوهات الاستخدام المحتملة
توفر Aspose.Cells آلية لمقاطعة أو إلغاء حساب الصيغة لورقة العمل باستخدام الأسلوب AbstractCalculationMonitor.Interrupt(). يكون هذا مفيدًا عندما يستغرق حساب الصيغة لورقة العمل وقتًا طويلاً وترغب في إلغاء معالجتها.
إيقاف أو إلغاء حساب الصيغ في سجل العمل
يطبق الشفرة النموذجية التالية الأسلوب BeforeCalculate() لفئة AbstractCalculationMonitor. داخل هذا الأسلوب ، يعثر على اسم الخلية باستخدام معلمات فهرس الصف والعمود. إذا كان اسم الخلية B8 ، فإنه يقاطع عملية الحساب عن طريق استدعاء الأسلوب AbstractCalculationMonitor.Interrupt(). بمجرد تنفيذ فئة AbstractCalculationMonitor الموضوعة، يتم تعيين مثيلها لخاصية CalculationOptions.CalculationMonitor. وأخيرًا ، يتم استدعاء Workbook.CalculateFormula() من خلال تمرير CalculationOptions كمعلمة. يرجى الاطلاع على ملف Excel عيني المستخدم داخل الشفرة وكذلك الإخراج للوحدة للشفرة المعطاة أدناه للإحالة.
الكود المثالي
// 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); | |
} | |
} |
مخرجات الوحدة
0----1----3----D2
0----4----6----G5
0----7----1----B8