مقاطعة أو إلغاء حساب صيغة المصنف
سيناريوهات الاستخدام الممكنة
يوفر Aspose.Cells آلية لمقاطعة أو إلغاء حساب صيغة المصنف باستخدامAbstractCalculationMonitor.Interrupt ()طريقة. يكون هذا مفيدًا عندما يستغرق حساب صيغة المصنف وقتًا طويلاً وتريد إلغاء معالجته.
مقاطعة أو إلغاء حساب صيغة المصنف
نموذج التعليمات البرمجية التالي بتنفيذBeforeCalculate () قبلطريقةAbstractCalculationMonitor صف دراسي. داخل هذه الطريقة ، تجد اسم الخلية باستخدام معلمات فهرس الصفوف والعمود. إذا كان اسم الخلية هو B8 ، فإنه يقطع عملية الحساب عن طريق استدعاءAbstractCalculationMonitor.Interrupt ()طريقة. مرة واحدة ، فئة ملموسة منAbstractCalculationMonitorتم تنفيذ فئة ، تم تعيين مثيلها إلىCalculationOptions.CalculationMonitorخاصية. أخيراً،المصنف .CalculateFormula ()يسمى بالمرورخيارات الحساب كمعامل. الرجاء مراجعةنموذج لملف 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