يعد دمج الخلايا وإلغاء دمجها ميزة بسيطة وشائعة الاستخدام في Microsoft Excel. قد يكون دمج الخلايا مفيدًا في السيناريوهات ، على سبيل المثال ، عندما يكون لديك ورقة عمل تحتوي على أعمدة متعددة تشترك في نفس العنوان. يمكنك دمج الخلايا الموجودة أعلى الأعمدة لمنحهم عنوانًا مشتركًا. في حالة عدم الحاجة إلى الخلايا المدمجة ، يمكنك إلغاء دمجها بنفس السهولة. قد تحتاج إلى أداء هذه المهام داخل تطبيقات C ++ الخاصة بك. لذلك ، ستعلمك هذه المقالة كيفية دمج الخلايا وإلغاء دمجها في أوراق عمل Excel برمجيًا باستخدام C ++.
- C ++ API لدمج الخلايا وإلغاء دمجها
- دمج الخلايا في ورقة عمل Excel باستخدام C ++
- قم بإلغاء دمج الخلايا في ورقة عمل Excel باستخدام C ++
- دمج مجموعة من الخلايا في ورقة عمل Excel باستخدام C ++
- قم بإلغاء دمج مجموعة من الخلايا في ورقة عمل Excel باستخدام C ++
- دمج خلايا نطاق مسمى في ورقة عمل Excel باستخدام C ++
واجهة برمجة تطبيقات C ++ لدمج الخلايا وإلغاء دمجها
Aspose.Cells for C ++ هي مكتبة C ++ أصلية تتيح لك إنشاء ملفات Excel وقراءتها وتعديلها دون الحاجة إلى تثبيت Microsoft Excel. تدعم واجهة برمجة التطبيقات أيضًا دمج الخلايا وإلغاء دمجها في ورقة عمل Excel. يمكنك إما تثبيت API من خلال NuGet أو تنزيلها مباشرة من قسم التنزيلات.
PM> Install-Package Aspose.Cells.Cpp
دمج الخلايا في ورقة عمل Excel باستخدام C ++
في هذا المثال ، سننشئ ورقة عمل Excel فارغة ودمج بضع خلايا باتباع الخطوات الواردة أدناه.
- أولاً ، قم بإنشاء مثيل لفئة IWorkbook.
- استرجع ورقة العمل باستخدام الأسلوب IWorkbook-> GetIWorksheets() -> GetObjectByIndex (Aspose :: Cells :: Systems :: Int32 index).
- استرجع الخلايا باستخدام طريقة IWorksheet-> GetICells().
- دمج الخلايا باستخدام ICells-> Merge (Aspose :: Cells :: Systems :: Int32 firstRow و Aspose :: Cells :: Systems :: Int32 firstColumn و Aspose :: Cells :: Systems :: Int32 totalRows و Aspose :: الخلايا :: الأنظمة :: Int32 totalColumns) طريقة.
- تطبيق الأنماط على الخلايا المدمجة.
- أخيرًا ، احفظ ملف Excel الناتج باستخدام IWorkbook-> Save (intrusiveptrAspose::Cells::Systems::String اسم الملف) طريقة.
يوضح نموذج التعليمات البرمجية التالي كيفية دمج الخلايا في ورقة عمل Excel باستخدام C ++.
// مسار دليل الإخراج.
StringPtr outDir = new String("OutputDirectory\\");
// قم بتحميل ملف Excel للإدخال
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// قم بالوصول إلى ورقة العمل الأولى في ملف Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// قم بإنشاء كائن خلايا لجلب جميع الخلايا.
intrusive_ptr<ICells> cells = worksheet->GetICells();
// دمج الخلايا
cells->Merge(5, 2, 2, 3);
// ضع البيانات في الخلية
cells->GetObjectByIndex(5, 2)->PutValue((StringPtr)new String("This is a test value"));
// قم بإنشاء كائن نمط
intrusive_ptr<IStyle> style = cells->GetICell(5, 2)->GetIStyle();
// قم بإنشاء كائن الخط
intrusive_ptr<Aspose::Cells::IFont> font = style->GetIFont();
// عيّن الاسم
font->SetName(new String("Times New Roman"));
// اضبط حجم الخط
font->SetSize(18);
// اضبط لون الخط
font->SetColor(Systems::Drawing::Color::GetCyan());
// اجعل النص غامقًا
font->SetBold(true);
// اجعل النص مائلاً
font->SetItalic(true);
// اضبط لون المقدمة
style->SetForegroundColor(Systems::Drawing::Color::GetRed());
// اضبط النمط
style->SetPattern(BackgroundType_Solid);
// تطبيق النمط
cells->GetICell(5, 2)->SetIStyle(style);
// احفظ ملف Excel
workbook->Save(outDir->StringAppend(new String("MergeCells_out.xlsx")));
قم بإلغاء دمج الخلايا في ورقة عمل Excel باستخدام C ++
فيما يلي خطوات إلغاء دمج الخلايا في ورقة عمل Excel.
- قم بتحميل ملف Excel باستخدام فئة IWorkbook.
- استرجع ورقة العمل التي تحتوي على خلايا مدمجة باستخدام الأسلوب IWorkbook-> GetIWorksheets() -> GetObjectByIndex (Aspose :: Cells :: Systems :: Int32 index).
- استرجع الخلايا باستخدام طريقة IWorksheet-> GetICells().
- قم بإلغاء دمج الخلايا باستخدام ICells-> UnMerge (Aspose :: Cells :: Systems :: Int32 firstRow و Aspose :: Cells :: Systems :: Int32 firstColumn و Aspose :: Cells :: Systems :: Int32 totalRows و Aspose :: Cells :: Systems :: Int32 totalColumns) طريقة.
- أخيرًا ، احفظ ملف Excel الناتج باستخدام IWorkbook-> Save (intrusiveptrAspose::Cells::Systems::String اسم الملف) طريقة.
يوضح نموذج التعليمات البرمجية التالي كيفية إلغاء دمج الخلايا في ورقة عمل Excel باستخدام C ++.
// مسار الدليل المصدر.
StringPtr srcDir = new String("SourceDirectory\\");
// مسار دليل الإخراج.
StringPtr outDir = new String("OutputDirectory\\");
// قم بتحميل ملف Excel للإدخال
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedCells.xlsx")));
// قم بالوصول إلى ورقة العمل الأولى في ملف Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// قم بإنشاء كائن خلايا لجلب جميع الخلايا.
intrusive_ptr<ICells> cells = worksheet->GetICells();
// فك دمج الخلايا.
cells->UnMerge(5, 2, 2, 3);
// احفظ ملف Excel
workbook->Save(outDir->StringAppend(new String("UnmergeCells_out.xlsx")));
دمج مجموعة من الخلايا في ورقة عمل Excel باستخدام C ++
فيما يلي خطوات دمج نطاق من الخلايا في ورقة عمل Excel.
- أولاً ، قم بإنشاء مثيل لفئة IWorkbook.
- استرجع ورقة العمل المطلوبة باستخدام IWorkbook-> GetIWorksheets() -> GetObjectByIndex (Aspose :: Cells :: Systems :: Int32 index).
- أدخل البيانات في الخلية.
- أنشئ النطاق باستخدام IWorksheet-> GetICells() -> CreateIRange (intrusiveptrAspose::Cells::Systems::String العنوان) طريقة.
- ادمج النطاق باستخدام طريقة IRange-> Merge().
- أخيرًا ، احفظ ملف Excel الناتج باستخدام IWorkbook-> Save (intrusiveptrAspose::Cells::Systems::String fileName) طريقة.
يوضح نموذج التعليمات البرمجية التالي كيفية دمج نطاق من الخلايا في ورقة عمل Excel باستخدام C ++.
// مسار دليل الإخراج.
StringPtr outDir = new String("OutputDirectory\\");
// قم بتحميل ملف Excel للإدخال
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// قم بالوصول إلى ورقة العمل الأولى في ملف Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// إدخال البيانات في الخلية A1.
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));
// قم بإنشاء نطاق
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// نطاق الدمج في خلية واحدة
range->Merge();
// احفظ ملف Excel
workbook->Save(outDir->StringAppend(new String("MergeRangeOfCells_out.xlsx")));
قم بإلغاء دمج مجموعة من الخلايا في ورقة عمل Excel باستخدام C ++
فيما يلي خطوات إلغاء دمج نطاق من الخلايا في ورقة عمل Excel.
- قم بتحميل ملف Excel باستخدام فئة IWorkbook.
- استرجع ورقة العمل التي تحتوي على خلايا مدمجة باستخدام الأسلوب IWorkbook-> GetIWorksheets() -> GetObjectByIndex (Aspose :: Cells :: Systems :: Int32 index).
- أنشئ النطاق باستخدام IWorksheet-> GetICells() -> CreateIRange (intrusiveptrAspose::Cells::Systems::String العنوان) طريقة.
- قم بإلغاء دمج النطاق باستخدام طريقة IRange-> UnMerge().
- أخيرًا ، احفظ ملف Excel الناتج باستخدام IWorkbook-> Save (intrusiveptrAspose::Cells::Systems::String fileName) طريقة.
يوضح نموذج التعليمات البرمجية التالي كيفية إلغاء دمج نطاق من الخلايا في ورقة عمل Excel باستخدام C ++.
// مسار الدليل المصدر.
StringPtr srcDir = new String("SourceDirectory\\");
// مسار دليل الإخراج.
StringPtr outDir = new String("OutputDirectory\\");
// قم بتحميل ملف Excel للإدخال
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));
// قم بالوصول إلى ورقة العمل الأولى في ملف Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// قم بإنشاء نطاق
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// نطاق UnMerge
range->UnMerge();
// احفظ ملف Excel
workbook->Save(outDir->StringAppend(new String("UnmergeRangeOfCells_out.xlsx")));
دمج خلايا نطاق مسمى في ورقة عمل Excel باستخدام C ++
يوفر لك Aspose.Cells for C ++ أيضًا القدرة على دمج خلايا نطاق مسمى. لتحقيق ذلك ، يرجى اتباع الخطوات الواردة أدناه.
- قم بتحميل ملف Excel باستخدام فئة IWorkbook.
- استرجع ورقة العمل باستخدام IWorkbook-> GetIWorksheets() -> GetObjectByIndex (Aspose :: Cells :: Systems :: Int32 index).
- أنشئ النطاق باستخدام IWorksheet-> GetICells() -> CreateIRange (intrusiveptrAspose::Cells::Systems::String العنوان) طريقة.
- قم بتعيين اسم النطاق باستخدام IRange-> SetName (intrusiveptrAspose::Cells::Systems::String القيمة) طريقة.
- إنشاء وتطبيق الأنماط على النطاق المسمى.
- ادمج خلايا النطاق المسمى باستخدام طريقة IRange-> Merge().
- أخيرًا ، احفظ ملف Excel الناتج باستخدام IWorkbook-> Save (intrusiveptrAspose::Cells::Systems::String fileName) طريقة.
يوضح نموذج التعليمات البرمجية التالي كيفية دمج خلايا نطاق مسمى باستخدام C ++.
// مسار الدليل المصدر.
StringPtr srcDir = new String("SourceDirectory\\");
// مسار دليل الإخراج.
StringPtr outDir = new String("OutputDirectory\\");
// قم بتحميل ملف Excel للإدخال
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));
// قم بالوصول إلى ورقة العمل الأولى في ملف Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// قم بإنشاء نطاق
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// تعيين اسم النطاق
range->SetName(new String("Named_Range"));
// تحديد كائن النمط
intrusive_ptr<IStyle> style = workbook->CreateIStyle();
// اضبط المحاذاة الأفقية
style->SetHorizontalAlignment(TextAlignmentType::TextAlignmentType_Center);
// قم بإنشاء كائن StyleFlag
intrusive_ptr<IStyleFlag> styleFlag = Factory::CreateIStyleFlag();
// اضبط المحاذاة الأفقية to true
styleFlag->SetHorizontalAlignment(true);
// قم بتطبيق النمط على النطاق
range->ApplyIStyle(style, styleFlag);
// ضع البيانات في النطاق
range->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));
// نطاق الدمج
range->Merge();
// احفظ ملف Excel
workbook->Save(outDir->StringAppend(new String("MergeNamedRange_out.xlsx")));
احصل على رخصة مجانية
يمكنك تجربة واجهة برمجة التطبيقات بدون قيود التقييم من خلال طلب ترخيص مؤقت مجاني.
استنتاج
في هذه المقالة ، تعلمت كيفية دمج الخلايا وإلغاء دمجها في ورقة عمل Excel باستخدام C ++. علاوة على ذلك ، لقد رأيت كيفية دمج وفك دمج النطاقات والنطاقات المسماة باستخدام Aspose.Cells لـ C ++ API. توفر واجهة برمجة التطبيقات العديد من الميزات الإضافية للعمل مع ملفات Excel التي يمكنك استكشافها بالتفصيل من خلال زيارة الوثائق الرسمية. في حالة وجود أي أسئلة ، لا تتردد في الاتصال بنا على منتدى الدعم المجاني.