يعد دمج الخلايا وإلغاء دمجها ميزة بسيطة وشائعة الاستخدام في Microsoft 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 فارغة ودمج بضع خلايا باتباع الخطوات الواردة أدناه.

يوضح نموذج التعليمات البرمجية التالي كيفية دمج الخلايا في ورقة عمل 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 الناتج الذي تم إنشاؤه بواسطة نموذج التعليمات البرمجية

صورة ملف Excel الناتج الذي تم إنشاؤه بواسطة نموذج التعليمات البرمجية

قم بإلغاء دمج الخلايا في ورقة عمل Excel باستخدام C ++

فيما يلي خطوات إلغاء دمج الخلايا في ورقة عمل Excel.

يوضح نموذج التعليمات البرمجية التالي كيفية إلغاء دمج الخلايا في ورقة عمل 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 الناتج الذي تم إنشاؤه بواسطة نموذج التعليمات البرمجية

صورة ملف Excel الناتج الذي تم إنشاؤه بواسطة نموذج التعليمات البرمجية

دمج مجموعة من الخلايا في ورقة عمل Excel باستخدام C ++

فيما يلي خطوات دمج نطاق من الخلايا في ورقة عمل Excel.

يوضح نموذج التعليمات البرمجية التالي كيفية دمج نطاق من الخلايا في ورقة عمل 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 الناتج الذي تم إنشاؤه بواسطة نموذج التعليمات البرمجية

صورة ملف Excel الناتج الذي تم إنشاؤه بواسطة نموذج التعليمات البرمجية

قم بإلغاء دمج مجموعة من الخلايا في ورقة عمل Excel باستخدام C ++

فيما يلي خطوات إلغاء دمج نطاق من الخلايا في ورقة عمل Excel.

يوضح نموذج التعليمات البرمجية التالي كيفية إلغاء دمج نطاق من الخلايا في ورقة عمل 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 الناتج الذي تم إنشاؤه بواسطة نموذج التعليمات البرمجية

صورة ملف Excel الناتج الذي تم إنشاؤه بواسطة نموذج التعليمات البرمجية

دمج خلايا نطاق مسمى في ورقة عمل Excel باستخدام C ++

يوفر لك Aspose.Cells for C ++ أيضًا القدرة على دمج خلايا نطاق مسمى. لتحقيق ذلك ، يرجى اتباع الخطوات الواردة أدناه.

يوضح نموذج التعليمات البرمجية التالي كيفية دمج خلايا نطاق مسمى باستخدام 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 الناتج الذي تم إنشاؤه بواسطة نموذج التعليمات البرمجية

صورة ملف Excel الناتج الذي تم إنشاؤه بواسطة نموذج التعليمات البرمجية

احصل على رخصة مجانية

يمكنك تجربة واجهة برمجة التطبيقات بدون قيود التقييم من خلال طلب ترخيص مؤقت مجاني.

استنتاج

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

أنظر أيضا