العمل مع الصيغ
نظرة عامة
Aspose.Cells FOSS stores formulas as Excel-compatible strings. The library does not evaluate formulas internally — it preserves the expression verbatim in the file, and the spreadsheet application (Excel, LibreOffice Calc, or any compatible reader) computes the result when the file is opened.
هناك طريقتان لوضع صيغة في خلية:
- الخلايا البناء «أو»
ws.cells["A4"] = Cell(None, "=SUM(A1:A3)") .formulaالممتلكات «أو»ws.cells["A4"].formula = "=SUM(A1:A3)"
يتم تخزين النموذج المدمج عندما تقوم ببناء ورقة من الخرسانة ؛ شكل العقار أكثر طبيعية عندما يكون لديك بالفعل إشارة إلى خلية موجودة وتريد إضافة صيغة إليها.
وضع صيغة من خلال بناء الخلايا
وَالْمُتَّقِينَ Cell وقع المبدع على Cell(value, formula).لإنشاء قوة نظيفة الصيغة الخلية، pass None كما قيمة و علامة التعبير كالآخر الحجة :
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
##Input values
ws.cells["A1"] = Cell(10)
ws.cells["A2"] = Cell(25)
ws.cells["A3"] = Cell(15)
##Formula cell: value=None, formula="=SUM(A1:A3)"
ws.cells["A4"] = Cell(None, "=SUM(A1:A3)")
workbook.save("formula_constructor.xlsx")
print("Saved formula_constructor.xlsx")إعدادات value=None يبين أن الخلية لا تملك قيمة ثابتة " يظهر المحتوى يأتي بالكامل من الصيغة.مخالفة غير-None القيمة جنبا إلى جنب مع صيغة مسموح بها ولكن غير عادية؛ معظم قراء اللوحة سوف تظهر النتيجة الصيغة وتجاهل القيمة المخزنة.
إعداد صيغة من خلال .formula الممتلكات
تخصيصها مباشرة إلى cell.formula إذا كنت تملك بالفعل مرجعية الخلية أو عندما تريد إضافة صيغة إلى خلية تم كتابتها سابقا مع قيمة:
from aspose.cells_foss import Workbook
workbook = Workbook()
ws = workbook.worksheets[0]
##Write input data
for i, val in enumerate([4, 8, 15, 16, 23], start=1):
ws.cells[f"A{i}"].value = val
##Attach a formula to an existing cell reference
cell = ws.cells["B1"]
cell.formula = "=AVERAGE(A1:A5)"
##Or assign directly by address
ws.cells["B2"].formula = "=MAX(A1:A5)"
ws.cells["B3"].formula = "=MIN(A1:A5)"
workbook.save("formula_property.xlsx")
print("Saved formula_property.xlsx")قراءة صيغة مرة أخرى
بعد كتابة صيغة الخلية ، استخدم .formula إعادة تعيين شريط التعريض و .value (وَإِنْ كُنَّا مُسْتَغْفِرِينَ) أي إن كانوا يريدون أن يتغيروا ما هو عليه.
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
ws.cells["A1"] = Cell(None, "=SUM(B1:B5)")
cell = ws.cells["A1"]
print(cell.formula) # =SUM(B1:B5)
print(cell.value) # None (no static value was set)في الممارسة،, .value هو None لكل خلية تم إنشاؤها مع Cell(None, formula). إذا قمت بتحميل دفتر عمل موجود تم حفظه سابقاً مع القيم المحسوبة يُنظر إلى الصيغة،, .value قد يعود النتيجة المنسدلة الأخيرة — ولكن هذا السلوك يعتمد على كيفية حفظ التطبيق الأصلي الملف ويجب أن يكون لا تعتمد على الحسابات الطازجة.
لتمييز الخلية الصيغة من الخلايا السطحية في الوقت الحالي:
cell = ws.cells["A1"]
if cell.formula:
print(f"Formula cell: {cell.formula}")
else:
print(f"Value cell: {cell.value}")صيغة Excel
قائمة الجدول التالية تستخدم في كثير من الأحيان وظائف Excel مع نموذج الشرائح يمكنك الانتقال مباشرة إلى Aspose.Cells FOSS.
| الهدف | صيغة string | ملاحظات |
|---|---|---|
| إعداد نطاق | =SUM(A1:A10) | إضافة جميع القيم الرقمية في نطاق |
| متوسط نطاق | =AVERAGE(A1:A10) | تجاهل الخلايا البيضاء |
| القيمة القصوى | =MAX(A1:A10) | العودة إلى أكبر عدد |
| الحد الأدنى للقيمة | =MIN(A1:A10) | إرجاع أدنى عدد |
| عدد الخلايا العددية | =COUNT(A1:A10) | الحساب الخلايا مع القيم الرقمية فقط |
| عدد الخلايا غير الفارغة | =COUNTA(A1:A10) | الحساب أي خلية غير بيضاء |
| القيمة المشروطة | =IF(A1>100,"High","Low") | 3 أشكال: اختبار، حقا-نتيجة، وهمية-نتائج |
| البحث العمودي | =VLOOKUP(D1,A1:B10,2,FALSE) | المجموعة (FALSE) الموصى بها |
| أشرطة القطع | =CONCATENATE(A1," ",B1) | أو استخدام =A1&" "&B1 |
| جولة رقم واحد | =ROUND(A1,2) | ثانيًا: الأجزاء العشرية |
يجب أن تبدأ جميع الشرائح مع =.أسماء الوظائف غير حساسة في الحالة ملفات متوافقة مع Excel، ولكن النموذج العلوي التقليدي يظهر أعلاه ل القراءة .
مثال كامل
يخلق المثال التالي مجموعة بيانات من القيم الرقمية الخمسة في العمود A ، ثم يكتب صيغ SUM و AVERAGE و MAX و MIN في السفينة B ، ويحفظ النتيجة إلى ملف XLSX.
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
##--- Headers ---
ws.cells["A1"].value = "Value"
ws.cells["B1"].value = "Formula"
ws.cells["C1"].value = "Result (evaluated by Excel)"
##--- Input data in A2:A6 ---
input_values = [14, 28, 7, 35, 21]
for i, val in enumerate(input_values, start=2):
ws.cells[f"A{i}"].value = val
##--- Formula labels in B column ---
ws.cells["B2"].value = "SUM"
ws.cells["B3"].value = "AVERAGE"
ws.cells["B4"].value = "MAX"
ws.cells["B5"].value = "MIN"
##--- Formulas in C column ---
ws.cells["C2"] = Cell(None, "=SUM(A2:A6)")
ws.cells["C3"] = Cell(None, "=AVERAGE(A2:A6)")
ws.cells["C4"] = Cell(None, "=MAX(A2:A6)")
ws.cells["C5"] = Cell(None, "=MIN(A2:A6)")
##--- Save ---
workbook.save("formulas_demo.xlsx")
print("Saved formulas_demo.xlsx")عند فتح هذا الملف في Excel أو LibreOffice Calc، سيتم عرض عمود C:
| روي | الصيغة | النتيجة المتوقعة |
|---|---|---|
| C2 | =SUM(A2:A6) | 105 |
| C3 | =AVERAGE(A2:A6) | 21 |
| C4 | =MAX(A2:A6) | 35 |
| C5 | =MIN(A2:A6) | 7 |
ملاحظات
يجب أن تبدأ الشرائح مع =
يُخزن المكتبة الحبل الأسود، ويغفل عن الرائدة. = سببها هو قارئ الورقة المقطوعة لمعالجة النص كسلسلة حروفية بدلا من صيغة.
##Correct — starts with =
ws.cells["A1"].formula = "=SUM(B1:B5)"
##Wrong — treated as the literal text "SUM(B1:B5)", not a formula
ws.cells["A1"].formula = "SUM(B1:B5)"مرجعية نطاق باستخدام المقياس القياسي Excel A1
يتم كتابة صفوف الأعمدة المقطوعة ك FirstCell:LastCell استخدام الأعلى العمود الرسائل والأرقام ذات الصفوف الواحدة: "A1:A10", "B2:D5", "C3:C3".- الفاس لا ترتدي المكتبة أو تصدق شريط نطاق "" سيكون نطيق غير صالح. يتم تخزينها في الفوركس وتسبب خطأ في قارئ اللوحة المفتوحة في الوقت المناسب.
يتم تخزين الصيغ كسلاسل ، غير تقييمها
Aspose.Cells FOSS does not include a formula engine. If you need the computed نتيجة صيغة في Python (على سبيل المثال، لإجراء المزيد من الحسابات)،, اكتب القيمة بنفسك و اقرأها كقيمة ثابتة مع .value.استخدام الصيغ فقط عندما يفتح المستخدم النهائي الملف في تطبيق ورقة النطاق وهذا يمكن أن يقيسها.
انظر أيضا
- إشارة API: الدرجة الكاملة و الوثائق الطريقة ل
aspose.cells_foss - قاعدة المعرفة: المهام الموجهة كيف-to دليل
- نظرة عامة على المنتج: خصائص و قدرات ملخص
- بدء التشغيل / التثبيت:- تثبيت و إعداد Pip
- مدونة: إدخال Aspose.Cells FOSS: نظرة عامة على المكتبة والبدء السريع