إدارة النطاقات باستخدام C++
مقدمة
في إكسل، يمكنك تحديد خلايا متعددة باستخدام تحديد مربع الماوس، ويُطلق على مجموعة الخلايا المحددة “نطاق”.
على سبيل المثال، يمكنك النقر بزر الماوس الأيسر في الخلية “A1” في إكسل ومن ثم سحبها إلى الخلية “C4”. يمكن أيضًا إنشاء المنطقة المستطيلة التي حددتها بسهولة باعتبارها كائنًا عن طريق استخدام Aspose.Cells.
هنا كيفية إنشاء نطاق ووضع قيمة وتعيين النمط، والقيام بعمليات أخرى على كائن “النطاق”.
إدارة النطاقات باستخدام Aspose.Cells
توفر Aspose.Cells فئةً تمثل ملف Microsoft Excel، وتحتوي الفئة Workbook على مجموعة Workbook التي تسمح بالوصول إلى كل ورقة عمل في ملف Excel. ورقة العمل تمثل بواسطة فئة Worksheets. توفر الفئة Worksheet مجموعة Cells.
إنشاء المدى
عندما ترغب في إنشاء منطقة مستطيلية تمتد عبر A1:C4، يمكنك استخدام الشيفرة التالية:
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Create a Workbook
Workbook workbook;
// Get Cells from the first worksheet
Cells cells = workbook.GetWorksheets().Get(0).GetCells();
// Create a Range from A1 to C4
Range range = cells.CreateRange(u"A1:C4");
Aspose::Cells::Cleanup();
}
وضع قيمة في الخلايا من المدى
فلنفترض أن لديك مدى من الخلايا يمتد عبر A1:C4. يحتوي المصفوفة على 4 * 3 = 12 خلية. ترتبت الخلايا الفردية للمدى على التوالي: Range[0,0], Range[0,1], Range[0,2], Range[1,0], Range[1,1], Range[1,2], Range[2,0], Range[2,1], Range[2,2], Range[3,0], Range[3,1], Range[3,2].
توضح الأمثلة التالية كيفية إدخال بعض القيم في الخلايا للنطاق
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Create a Workbook
Workbook workbook;
// Get Cells from the first worksheet
Cells cells = workbook.GetWorksheets().Get(0).GetCells();
// Create a Range from A1 to C4
Range range = cells.CreateRange(u"A1:C4");
// Put values in specific cells
range.Get(0, 0).PutValue(u"A1");
range.Get(0, 1).PutValue(u"B1");
range.Get(0, 2).PutValue(u"C1");
range.Get(3, 0).PutValue(u"A4");
range.Get(3, 1).PutValue(u"B4");
range.Get(3, 2).PutValue(u"C4");
// Save the Workbook
workbook.Save(u"RangeValueTest.xlsx");
std::cout << "Workbook saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
تعيين أسلوب للخلايا من المدى
توضح الأمثلة التالية كيفية تعيين نمط الخلايا في النطاق
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Create a Workbook
Workbook workbook;
// Get Cells
WorksheetCollection sheets = workbook.GetWorksheets();
Cells cells = sheets.Get(0).GetCells();
// Create Range
Range range = cells.CreateRange(u"A1:C4");
// Put value
range.Get(0, 0).PutValue(u"A1");
range.Get(3, 2).PutValue(u"C4");
// Set Style
Style style00 = workbook.CreateStyle();
style00.SetPattern(BackgroundType::Solid);
style00.SetForegroundColor(Color::Red());
range.Get(0, 0).SetStyle(style00);
Style style32 = workbook.CreateStyle();
style32.SetPattern(BackgroundType::HorizontalStripe);
style32.SetForegroundColor(Color::Green());
range.Get(3, 2).SetStyle(style32);
// Save the Workbook
workbook.Save(u"RangeStyleTest.xlsx");
std::cout << "Workbook saved successfully with range styles applied!" << std::endl;
Aspose::Cells::Cleanup();
}
الحصول على النطاق الحالي من المدى
CurrentRegion هو خاصية تقوم بإرجاع كائن Range يمثل المنطقة الحالية
المنطقة الحالية هي نطاق محصور بأي مزيج من الصفوف الفارغة والأعمدة الفارغة. للقراءة فقط
في Excel، يمكنك الحصول على منطقة الـ CurrentRegion عن طريق:
- تحديد منطقة (range1) بصندوق الماوس.
- انقر “الصفحة الرئيسية - تحرير - البحث والتحديد - اذهب إلى خاص - المنطقة الحالية”، أو استخدم “Ctrl+Shift+*"، سترى أن Excel يساعدك تلقائيًا على تحديد منطقة (range2)، الآن قمت بذلك، range2 هو المنطقة الحالية للـ range1.
من خلال Aspose.Cells، يمكنك استخدام خاصية “Range.CurrentRegion” لأداء نفس الوظيفة.
يرجى تحميل الملف الاختبار التالي، افتحه في Excel، استخدم صندوق الماوس لتحديد منطقة “A1:D7”، ثم انقر “Ctrl+Shift+*"، سترى منطقة “A1:C3” محددة.
الآن يرجى تشغيل الأمثلة التالية، وشاهد كيفية عمل ذلك في Aspose.Cells:
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Create a Workbook
Workbook workbook(u"current_region.xlsx");
// Get Cells from the first worksheet
Cells cells = workbook.GetWorksheets().Get(0).GetCells();
// Create a Range from A1 to D7
Range src = cells.CreateRange(u"A1:D7");
// Get the CurrentRegion of the created range
Range A1C3 = src.GetCurrentRegion();
Aspose::Cells::Cleanup();
}
مواضيع متقدمة
- ملء تلقائي لنطاق ملف Excel
- نسخ النطاقات من Excel
- نسخ بيانات النطاق فقط
- نسخ بيانات النطاق بالتنسيق
- نسخ نمط النطاق فقط
- إنشاء مجموعة الاتحاد
- قص ولصق النطاق
- حذف النطاقات
- الحصول على عنوان خلية عدد الإزاحة الكاملة للعمود والصف الكامل للنطاق
- إدراج النطاقات
- دمج أو فصل نطاق الخلايا
- نقل مجموعة من الخلايا في ورقة العمل
- إنشاء أسماء مسماة محددة بنطاق العمل وورقة العمل
- البحث والاستبدال في بيانات النطاق