حساب أو إعادة حساب الصيغ ديناميكياً

يتم تضمين محرك حساب الصيغ في Aspose.Cells. يمكنه ليس فقط إعادة حساب الصيغة المستوردة من ملف المصمم ولكن أيضاً يدعم حساب نتائج الصيغ المضافة أثناء التشغيل.

إضافة صيغ وحساب النتائج

Aspose.Cells يدعم معظم الصيغ أو الوظائف التي تشكل جزءًا من Microsoft Excel. يمكن للمطورين استخدام هذه الصيغ باستخدام واجهة برمجة التطبيقات أو جداول البيانات المصممة. تدعم Aspose.Excel مجموعة ضخمة من الصيغ الرياضية والنصية والمنطقية والتاريخ / الوقت والإحصائية وقاعدة البيانات والبحث والإشارة.

استخدم خاصية الصيغة في فئة Cell لإضافة صيغة إلى خلية. عند تطبيق صيغة على خلية، يجب دائمًا أن تبدأ السلسلة بعلامة يساوي (=) كما تفعل عند إنشاء صيغة في Microsoft Excel. استخدم الفاصلة (،) لفصل معلمات الدالة.

لحساب نتائج الصيغ، قم باستدعاء طريقة CalculateFormula في فئة Excel والتي تقوم بمعالجة جميع الصيغ المضمنة في ملف Excel. اقرأ الرابط: قائمة الدوال المدعومة بواسطة طريقة CalculateFormula.

 //Instantiating a Workbook object

Workbook workbook = new Workbook();

//Adding a new worksheet to the Excel object

int sheetIndex = workbook.Worksheets.Add();

//Obtaining the reference of the newly added worksheet by passing its sheet index

Worksheet worksheet = workbook.Worksheets[sheetIndex];

//Adding a value to "A1" cell

worksheet.Cells["A1"].PutValue(1);

//Adding a value to "A2" cell

worksheet.Cells["A2"].PutValue(2);

//Adding a value to "A3" cell

worksheet.Cells["A3"].PutValue(3);

//Adding a SUM formula to "A4" cell

worksheet.Cells["A4"].Formula = "=SUM(A1:A3)";

//Calculating the results of formulas

workbook.CalculateFormula();

//Get the calculated value of the cell

string value = worksheet.Cells["A4"].Value.ToString();

//Saving the Excel file

workbook.Save("Adding Formula.xls");

حساب الصيغ مرة واحدة فقط

عندما يقوم المستخدم بدعوة Workbook.CalculateFormula() لحساب قيم الصيغ داخل قالب المصنف، يقوم Aspose.Cells بإنشاء سلسلة حساب. يزيد الأداء عندما يتم حساب الصيغ للمرة الثانية أو الثالثة الخ. ومع ذلك، إذا كان قالب المستخدم يحتوي على الكثير من الصيغ المتنوعة، فإن حساب الصيغ للمرة الأولى يمكن أن يستهلك الكثير من وقت معالجة وحدة المعالجة المركزية والذاكرة.

تسمح Aspose.Cells لك بإيقاف إنشاء سلسلة الحساب والتي تكون مفيدة في السيناريوهات عندما ترغب في حساب الصيغ مرة واحدة فقط من ملفك.

إذا كنت تسعى إلى تحسين أداء حساب الصيغ بواسطة Aspose.Cells ولا ترغب في إنشاء سلسلة حساب الصيغ، فيرجى ضبط FormulaSettings.EnableCalculationChain كـ false. بشكل افتراضي، يكون مضبوطًا على true.

 string FilePath = @"..\..\..\Sample Files\";

string FileName = FilePath + "Adding Formula.xlsx";

//Load the template workbook

Workbook workbook = new Workbook(FileName);

//Print the time before formula calculation

Console.WriteLine(DateTime.Now);

//Set the CreateCalcChain as false

workbook.Settings.FormulaSettings.EnableCalculationChain = false;

//Calculate the workbook formulas

workbook.CalculateFormula();

//Print the time after formula calculation

Console.WriteLine(DateTime.Now);

workbook.Save(FileName);

حساب مباشر للصيغ

محرك حساب الصيغ مضمن في Aspose.Cells. بالإضافة إلى إعادة حساب الصيغ المستوردة من ملف المصمم، تدعم Aspose.Cells أيضًا حساب نتائج الصيغ مباشرة. أحيانًا، تحتاج إلى حساب نتائج الصيغ مباشرة دون إضافتها فعليًا في ورقة عمل. قيم الخلايا المستخدمة في الصيغة موجودة بالفعل في ورقة العمل وكل ما تحتاجه هو العثور على نتيجة تلك القيم استنادًا إلى بعض صيغة Ms-Excel دون إضافة الصيغة في ورقة العمل.

يمكنك استخدام واجهة برمجة التطبيقات لحساب الصيغ في Aspose.Cells أي worksheet.Calculate(string formula) لحساب نتائج مثل تلك الصيغ دون إضافتها فعليًا في ورقة العمل.

 //Create a workbook

Workbook workbook = new Workbook();

//Access first worksheet

Worksheet worksheet = workbook.Worksheets[0];

//Put 20 in cell A1

Cell cellA1 = worksheet.Cells["A1"];

cellA1.PutValue(20);

//Put 30 in cell A2

Cell cellA2 = worksheet.Cells["A2"];

cellA2.PutValue(30);

//Calculate the Sum of A1 and A2

var results = worksheet.CalculateFormula("=Sum(A1:A2)");

Cell cellA3 = worksheet.Cells["A3"];

cellA3.PutValue(results);

//Print the output

Debug.WriteLine("Value of A1: " + cellA1.StringValue);

Debug.WriteLine("Value of A2: " + cellA2.StringValue);

Debug.WriteLine("Result of Sum(A1:A2): " + results.ToString());

workbook.Save("Calulate Any Formulae.xls");

تحميل رمز عينة