ادغام و ادغام سلول ها یکی از ویژگی های ساده و پرکاربرد مایکروسافت اکسل است. ادغام سلول ها ممکن است در سناریوها مفید باشد، به عنوان مثال، زمانی که یک کاربرگ با چندین ستون دارید که عنوان یکسانی دارند. می‌توانید سلول‌های بالای ستون‌ها را ادغام کنید تا یک عنوان مشترک به آنها بدهید. در صورتی که سلول های ادغام شده دیگر مورد نیاز نباشند، می توانید به همین راحتی آنها را از حالت ادغام خارج کنید. ممکن است لازم باشد این وظایف را در برنامه های C++ خود انجام دهید. برای این منظور، این مقاله به شما آموزش می‌دهد که چگونه سلول‌ها را در کاربرگ‌های اکسل به صورت برنامه‌نویسی با استفاده از C++ ادغام و از هم ادغام کنید.

C++ API برای ادغام و ادغام سلول ها

Aspose.Cells for C++ یک کتابخانه بومی C++ است که به شما امکان می‌دهد بدون نیاز به نصب Microsoft Excel فایل‌های Excel را ایجاد، بخوانید و اصلاح کنید. API همچنین از ادغام و عدم ادغام سلول ها در یک کاربرگ اکسل پشتیبانی می کند. می‌توانید API را از طریق NuGet نصب کنید یا آن را مستقیماً از بخش Downloads دانلود کنید.

PM> Install-Package Aspose.Cells.Cpp

ادغام سلول ها در یک کاربرگ اکسل با استفاده از C++

در این مثال، یک کاربرگ خالی اکسل ایجاد می کنیم و با دنبال کردن مراحل زیر، چند سلول را ادغام می کنیم.

کد نمونه زیر نحوه ادغام سلول ها در کاربرگ Excel را با استفاده از C++ نشان می دهد.

// مسیر دایرکتوری خروجی
StringPtr outDir = new String("OutputDirectory\\");

// فایل اکسل ورودی را بارگیری کنید
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// به اولین کاربرگ در فایل اکسل دسترسی پیدا کنید
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// یک شی Cells ایجاد کنید تا همه سلول ها را واکشی کنید.
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"));

// یک شی Style ایجاد کنید 
intrusive_ptr<IStyle> style = cells->GetICell(5, 2)->GetIStyle();

// یک شی Font ایجاد کنید
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);

// Style را اعمال کنید
cells->GetICell(5, 2)->SetIStyle(style);

// فایل اکسل را ذخیره کنید
workbook->Save(outDir->StringAppend(new String("MergeCells_out.xlsx")));
تصویر فایل اکسل خروجی تولید شده توسط کد نمونه

تصویر فایل اکسل خروجی تولید شده توسط کد نمونه

ادغام سلول ها در کاربرگ اکسل با استفاده از C++

مراحل زیر برای حذف ادغام سلول ها در کاربرگ اکسل آمده است.

کد نمونه زیر نحوه ادغام سلول ها در کاربرگ اکسل را با استفاده از C++ نشان می دهد.

// مسیر دایرکتوری منبع.
StringPtr srcDir = new String("SourceDirectory\\");

// مسیر دایرکتوری خروجی
StringPtr outDir = new String("OutputDirectory\\");

// فایل اکسل ورودی را بارگیری کنید
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedCells.xlsx")));

// به اولین کاربرگ در فایل اکسل دسترسی پیدا کنید
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// یک شی Cells ایجاد کنید تا همه سلول ها را واکشی کنید.
intrusive_ptr<ICells> cells = worksheet->GetICells();

// سلول ها را از حالت ادغام خارج کنید.
cells->UnMerge(5, 2, 2, 3);

// فایل اکسل را ذخیره کنید
workbook->Save(outDir->StringAppend(new String("UnmergeCells_out.xlsx")));
تصویر فایل اکسل خروجی تولید شده توسط کد نمونه

تصویر فایل اکسل خروجی تولید شده توسط کد نمونه

ادغام محدوده ای از سلول ها در یک کاربرگ اکسل با استفاده از ++C

مراحل زیر برای ادغام طیف وسیعی از سلول ها در کاربرگ اکسل آورده شده است.

کد نمونه زیر نحوه ادغام طیف وسیعی از سلول ها در کاربرگ Excel را با استفاده از C++ نشان می دهد.

// مسیر دایرکتوری خروجی
StringPtr outDir = new String("OutputDirectory\\");

// فایل اکسل ورودی را بارگیری کنید
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// به اولین کاربرگ در فایل اکسل دسترسی پیدا کنید
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();

// فایل اکسل را ذخیره کنید
workbook->Save(outDir->StringAppend(new String("MergeRangeOfCells_out.xlsx")));
تصویر فایل اکسل خروجی تولید شده توسط کد نمونه

تصویر فایل اکسل خروجی تولید شده توسط کد نمونه

ادغام محدوده ای از سلول ها در کاربرگ اکسل با استفاده از ++C

مراحل زیر برای ادغام محدوده ای از سلول ها در کاربرگ اکسل آورده شده است.

کد نمونه زیر نحوه ادغام طیف وسیعی از سلول ها در کاربرگ Excel را با استفاده از C++ نشان می دهد.

// مسیر دایرکتوری منبع.
StringPtr srcDir = new String("SourceDirectory\\");

// مسیر دایرکتوری خروجی
StringPtr outDir = new String("OutputDirectory\\");

// فایل اکسل ورودی را بارگیری کنید
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));

// به اولین کاربرگ در فایل اکسل دسترسی پیدا کنید
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// یک محدوده ایجاد کنید
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));

// محدوده Unmerge
range->UnMerge();

// فایل اکسل را ذخیره کنید
workbook->Save(outDir->StringAppend(new String("UnmergeRangeOfCells_out.xlsx")));
تصویر فایل اکسل خروجی تولید شده توسط کد نمونه

تصویر فایل اکسل خروجی تولید شده توسط کد نمونه

ادغام سلول های یک محدوده نامگذاری شده در یک کاربرگ اکسل با استفاده از C++

Aspose.Cells برای C++ همچنین به شما امکان ادغام سلول های یک محدوده نامگذاری شده را می دهد. برای رسیدن به این هدف، لطفا مراحل زیر را دنبال کنید.

کد نمونه زیر نحوه ادغام سلول های یک محدوده نامگذاری شده را با استفاده از C++ نشان می دهد.

// مسیر دایرکتوری منبع.
StringPtr srcDir = new String("SourceDirectory\\");

// مسیر دایرکتوری خروجی
StringPtr outDir = new String("OutputDirectory\\");

// فایل اکسل ورودی را بارگیری کنید
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));

// به اولین کاربرگ در فایل اکسل دسترسی پیدا کنید
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();

// فایل اکسل را ذخیره کنید
workbook->Save(outDir->StringAppend(new String("MergeNamedRange_out.xlsx")));
تصویر فایل اکسل خروجی تولید شده توسط کد نمونه

تصویر فایل اکسل خروجی تولید شده توسط کد نمونه

مجوز رایگان دریافت کنید

با درخواست [مجوز موقت رایگان] می‌توانید API را بدون محدودیت ارزیابی امتحان کنید.

نتیجه

در این مقاله، نحوه ادغام و ادغام سلول ها در کاربرگ اکسل با استفاده از C++ را آموختید. علاوه بر این، نحوه ادغام و ادغام محدوده ها و محدوده های نامگذاری شده را با استفاده از Aspose.Cells برای C++ API مشاهده کرده اید. API بسیاری از ویژگی‌های اضافی را برای کار با فایل‌های اکسل فراهم می‌کند که می‌توانید با مراجعه به مستندات رسمی جزئیات را بررسی کنید. در صورت وجود هرگونه سوال، لطفاً در [تالار گفتمان پشتیبانی رایگان32 ما با ما تماس بگیرید.

همچنین ببینید