إدارة صيغ ملفات Excel

مقدمة

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

استخدام الصيغ والوظائف

Aspose.Cells يوفر فصل دراسي ،دفتر العمل ، يمثل ملف Excel Microsoft. الدفتر العمل فئة تحتوي علىأوراق عمل مجموعة تسمح بالوصول إلى كل ورقة عمل في ملف Excel. يتم تمثيل ورقة العمل بواسطةورقة عمل صف دراسي. الورقة عمل فئة توفر أCells مجموعة. يمثل كل عنصر في مجموعة Cells عنصرًا من عناصرCell صف دراسي.

من الممكن تطبيق الصيغ على الخلايا باستخدام الخصائص والطرق التي يوفرهاCell الفصل ، بمزيد من التفصيل أدناه.

  • استخدام وظائف مدمجة.
  • استخدام الوظائف الإضافية.
  • العمل مع صيغ الصفيف.
  • إنشاء صيغة R1C1.

استخدام وظائف مدمجة

يتم توفير الوظائف أو الصيغ المضمنة كوظائف جاهزة لتقليل جهود المطورين والوقت. نرىقائمة الوظائف المدمجة يدعمها Aspose.Cells. الوظائف مذكورة بترتيب أبجدي. سيتم دعم المزيد من الوظائف في المستقبل.

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

استخدم الCell صف دراسي'معادلةخاصية لإضافة صيغة إلى خلية.الصيغ المعقدة، على سبيل المثال

 = H7*(1+IF(P7 = $L$3,$M$3, (IF(P7=$L$4,$M$4,0))))

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

في المثال أدناه ، يتم تطبيق صيغة معقدة على الخلية الأولى من ورقة العملCells مجموعة. تستخدم الصيغة ملفإذا الوظيفة المقدمة من Aspose.Cells.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Create directory if it is not already present.
bool IsExists = System.IO.Directory.Exists(dataDir);
if (!IsExists)
System.IO.Directory.CreateDirectory(dataDir);
// 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[0];
// 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(dataDir + "output.xls");

استخدام الوظائف الإضافية

يمكن أن يكون لدينا بعض الصيغ التي يحددها المستخدم والتي نريد تضمينها كوظيفة إضافية في Excel. عند ضبط الخلية ، تعمل الوظائف المضمنة لوظيفة الصيغة بشكل جيد ولكن هناك حاجة لتعيين الوظائف أو الصيغ المخصصة باستخدام وظائف الوظيفة الإضافية.

يوفر Aspose.Cells ميزات لتسجيل الوظائف الإضافية باستخدامأوراق العمل.. بعد ذلك عندما قمنا بتعيين cell.Formula = anyFunctionFromAddIn ، يحتوي ملف Excel الناتج على القيمة المحسوبة من الوظيفة الإضافية.

يجب تنزيل الملف XLAM التالي لتسجيل الوظيفة الإضافية في نموذج الكود أدناه. وبالمثل ، يمكن تنزيل ملف الإخراج “test_udf.xlsx” للتحقق من الإخراج.

TestUDF.xlam

test_udf.xlsx

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Create empty workbook
Workbook workbook = new Workbook();
// Register macro enabled add-in along with the function name
int id = workbook.Worksheets.RegisterAddInFunction(sourceDir + @"TESTUDF.xlam", "TEST_UDF", false);
// Register more functions in the file (if any)
workbook.Worksheets.RegisterAddInFunction(id, "TEST_UDF1"); //in this way you can add more functions that are in the same file
// Access first worksheet
Worksheet worksheet = workbook.Worksheets[0];
// Access first cell
var cell = worksheet.Cells["A1"];
// Set formula name present in the add-in
cell.Formula = "=TEST_UDF()";
// Save workbook to output XLSX format.
workbook.Save(outputDir + @"test_udf.xlsx", Aspose.Cells.SaveFormat.Xlsx);

باستخدام صيغة المصفوفة

صيغ الصفيف هي صيغ تأخذ المصفوفات ، بدلاً من الأرقام الفردية ، كوسيطات للدوال التي تشكل الصيغة. عندما يتم عرض صيغة صفيف ، فإنها محاطة بأقواس ({}).

تقوم بعض دالات Microsoft Excel بإرجاع مصفوفات من القيم. لحساب نتائج متعددة باستخدام صيغة صفيف ، أدخل الصفيف في نطاق من الخلايا بنفس عدد الصفوف والأعمدة مثل وسيطات الصفيف.

من الممكن تطبيق صيغة صفيف على خلية عن طريق استدعاءCell صف دراسي'SetArrayFormula طريقة. الSetArrayFormula تأخذ الطريقة المعلمات التالية:

  • صيغة المصفوفة، صيغة الصفيف.
  • عدد الصفوف، هو عدد الصفوف المراد نشرها نتيجة صيغة الصفيف.
  • عدد الأعمدة، هو عدد الأعمدة المراد نشرها نتيجة صيغة الصفيف.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Create directory if it is not already present.
bool IsExists = System.IO.Directory.Exists(dataDir);
if (!IsExists)
System.IO.Directory.CreateDirectory(dataDir);
// 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 value to B1
worksheet.Cells["B1"].PutValue(4);
// Adding a value to "B2" cell
worksheet.Cells["B2"].PutValue(5);
// Adding a value to "B3" cell
worksheet.Cells["B3"].PutValue(6);
// Adding a value to C1
worksheet.Cells["C1"].PutValue(7);
// Adding a value to "C2" cell
worksheet.Cells["C2"].PutValue(8);
// Adding a value to "C3" cell
worksheet.Cells["C3"].PutValue(9);
// Adding a SUM formula to "A4" cell
worksheet.Cells["A6"].SetArrayFormula("=LINEST(A1:A3,B1:C3,TRUE,TRUE)", 5, 3);
// Calculating the results of formulas
workbook.CalculateFormula();
// Get the calculated value of the cell
string value = worksheet.Cells["A6"].Value.ToString();
// Saving the Excel file
workbook.Save(dataDir + "output.xls");

باستخدام صيغة R1C1

إضافةR1C1 صيغة نمط مرجعي لخلية بامتدادCell صف دراسي'صيغة R1C1 خاصية.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "Book1.xls");
Worksheet worksheet = workbook.Worksheets[0];
// Setting an R1C1 formula on the "A11" cell,
// Row and Column indeces are relative to destination index
worksheet.Cells["A11"].R1C1Formula = "=SUM(R[-10]C[0]:R[-7]C[0])";
// Saving the Excel file
workbook.Save(dataDir + "output.xls");

موضوعات مسبقة