وثائق HotXLS

طريقة Calculate

تحسب نتيجة التعبير المحدد
يدعم المقيم المدمج العمليات الحسابية، ومراجع الخلايا والنطاقات، والنطاقات ذات الأسماء المحددة، ومجموعات الدالات التالية: دالات النصوص (TRIM، PROPER، CLEAN، CHAR، CODE، T، EXACT، REPT، FIND، SEARCH، SUBSTITUTE، REPLACE)؛ دالات التاريخ (EDATE، EOMONTH، DATEDIF، YEARFRAC، DAYS، WEEKNUM، ISOWEEKNUM)؛ دالات أيام العمل (WORKDAY، NETWORKDAYS)؛ الدالات الهندسية/تحويل الأساس (DEC2BIN، DEC2HEX، DEC2OCT، BIN2DEC، BIN2HEX، BIN2OCT، OCT2DEC، OCT2BIN، OCT2HEX، HEX2DEC، HEX2BIN، HEX2OCT، BASE، DECIMAL، ARABIC)؛ دالات البت (BITAND، BITOR، BITXOR، BITLSHIFT، BITRSHIFT)؛ الدالات الإحصائية (VAR، VARP، STDEV، STDEVP، MODE، VARA، VARPA، STDEVA، STDEVPA)؛ الدالات التجميعية (PRODUCT، SUMSQ)؛ دالات الرياضيات (GCD، LCM، MROUND، QUOTIENT، MULTINOMIAL) لا يزال من الممكن حل دالات أوراق العمل المخصصة أو غير المدعومة من خلال OnUserFunction / OnUserFunctionEx

بناء الجملة

function Calculate(Expression: WideString):Variant;
Expression سلسلة نصية (WideString). سلسلة تحدد تعبيرا يجب حسابه

مثال

يحسب هذا المثال التعبير البسيط

Val := Workbook.Calculate('100/2*3');
يحسب هذا المثال تعبيرا نصيا

Val := Workbook.Calculate('SUBSTITUTE("a-b-c";"-";"+")');
يحدد هذا المثال أصغر قيمة في النطاق A1:F10 في ورقة العمل النشطة

Val := Workbook.Calculate('MIN(A1:F10)');
هذا المثال مطابق للمثال السابق

Val := Workbook.ActiveSheet.Calculate('MIN(A1:F10)');

التحقق من النتائج المخزنة مؤقتاً

يمكن لـ TXLSWorkbook وTXLSXWorkbook مقارنة نتائج الصيغ المخزنة بالنتائج المحسوبة حديثاً دون استبدال ذاكرة التخزين المؤقت
function CalculateAndVerify: Integer; overload;
function CalculateAndVerify(out Mismatches: TArray<TXLSVerifyMismatch>): Integer; overload;
القيمة المعادة هي عدد حالات عدم التطابق. يحتوي كل سجل على SheetIndex وSheetName وRow وCol (القائمين على 1) وExpected وActual وFormula. تُتخطى الصيغ المتغيرة وخلايا جداول البيانات والصيغ بلا نتيجة مخزنة والصيغ التي يتعذر حسابها
MismatchCount := Workbook.CalculateAndVerify(Mismatches);
for I := 0 to MismatchCount - 1 do
  Log(Mismatches[I].SheetName, Mismatches[I].Row,
    Mismatches[I].Col, Mismatches[I].Expected, Mismatches[I].Actual);

انظر أيضا

رد نداء OnUserFunction
طريقة TXLSWorksheet.Calculate