ادغام و ادغام سلول ها یکی از ویژگی های ساده و پرکاربرد مایکروسافت اکسل است. ادغام سلول ها ممکن است در سناریوها مفید باشد، به عنوان مثال، زمانی که یک کاربرگ با چندین ستون دارید که عنوان یکسانی دارند. میتوانید سلولهای بالای ستونها را ادغام کنید تا یک عنوان مشترک به آنها بدهید. در صورتی که سلول های ادغام شده دیگر مورد نیاز نباشند، می توانید به همین راحتی آنها را از حالت ادغام خارج کنید. ممکن است لازم باشد این وظایف را در برنامه های C++ خود انجام دهید. برای این منظور، این مقاله به شما آموزش میدهد که چگونه سلولها را در کاربرگهای اکسل به صورت برنامهنویسی با استفاده از C++ ادغام و از هم ادغام کنید.
- C++ API برای ادغام و ادغام سلول ها
- ادغام سلول ها در یک کاربرگ اکسل با استفاده از C++
- ادغام سلول ها در کاربرگ اکسل با استفاده از C++
- ادغام محدوده ای از سلول ها در یک کاربرگ اکسل با استفاده از ++C
- ادغام محدوده ای از سلول ها در کاربرگ اکسل با استفاده از ++C
- ادغام سلول های یک محدوده نامگذاری شده در یک کاربرگ اکسل با استفاده از C++
C++ API برای ادغام و ادغام سلول ها
Aspose.Cells for C++ یک کتابخانه بومی C++ است که به شما امکان میدهد بدون نیاز به نصب Microsoft Excel فایلهای Excel را ایجاد، بخوانید و اصلاح کنید. API همچنین از ادغام و عدم ادغام سلول ها در یک کاربرگ اکسل پشتیبانی می کند. میتوانید API را از طریق NuGet نصب کنید یا آن را مستقیماً از بخش Downloads دانلود کنید.
PM> Install-Package Aspose.Cells.Cpp
ادغام سلول ها در یک کاربرگ اکسل با استفاده از C++
در این مثال، یک کاربرگ خالی اکسل ایجاد می کنیم و با دنبال کردن مراحل زیر، چند سلول را ادغام می کنیم.
- ابتدا یک نمونه از کلاس 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).
- استایل ها را به سلول های ادغام شده اعمال کنید.
- در نهایت، فایل اکسل خروجی را با استفاده از IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String filename) روش.
کد نمونه زیر نحوه ادغام سلول ها در کاربرگ 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++
مراحل زیر برای حذف ادغام سلول ها در کاربرگ اکسل آمده است.
- فایل اکسل را با استفاده از کلاس 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).
- در نهایت، فایل اکسل خروجی را با استفاده از IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String filename) روش.
کد نمونه زیر نحوه ادغام سلول ها در کاربرگ اکسل را با استفاده از 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
مراحل زیر برای ادغام طیف وسیعی از سلول ها در کاربرگ اکسل آورده شده است.
- ابتدا یک نمونه از کلاس IWorkbook ایجاد کنید.
- کاربرگ مورد نظر را با استفاده از روش IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) بازیابی کنید.
- داده ها را در سلول وارد کنید.
- محدوده را با استفاده از IWorksheet->GetICells()->CreateIRange(intrusiveptr ایجاد کنید.Aspose::Cells::Systems::String آدرس) روش.
- محدوده را با استفاده از روش IRange->Merge() ادغام کنید.
- در نهایت، فایل اکسل خروجی را با استفاده از IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String filename) روش.
کد نمونه زیر نحوه ادغام طیف وسیعی از سلول ها در کاربرگ 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
مراحل زیر برای ادغام محدوده ای از سلول ها در کاربرگ اکسل آورده شده است.
- فایل اکسل را با استفاده از کلاس IWorkbook بارگیری کنید.
- کاربرگ حاوی سلول های ادغام شده را با استفاده از روش IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) بازیابی کنید.
- محدوده را با استفاده از IWorksheet->GetICells()->CreateIRange(intrusiveptr ایجاد کنید.Aspose::Cells::Systems::String آدرس) روش.
- محدوده را با استفاده از روش IRange->UnMerge() ادغام کنید.
- در نهایت، فایل اکسل خروجی را با استفاده از IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String filename) روش.
کد نمونه زیر نحوه ادغام طیف وسیعی از سلول ها در کاربرگ 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++ همچنین به شما امکان ادغام سلول های یک محدوده نامگذاری شده را می دهد. برای رسیدن به این هدف، لطفا مراحل زیر را دنبال کنید.
- فایل اکسل را با استفاده از کلاس IWorkbook بارگیری کنید.
- کاربرگ را با استفاده از روش IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) بازیابی کنید.
- محدوده را با استفاده از IWorksheet->GetICells()->CreateIRange(intrusiveptr ایجاد کنید.Aspose::Cells::Systems::String آدرس) روش.
- نام محدوده را با استفاده از IRange->SetName(intrusiveptrAspose::Cells::Systems::String مقدار) روش.
- ایجاد و اعمال سبک در محدوده نامگذاری شده.
- سلول های محدوده نامگذاری شده را با استفاده از روش IRange->Merge() ادغام کنید.
- در نهایت، فایل اکسل خروجی را با استفاده از IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String روش filename).
کد نمونه زیر نحوه ادغام سلول های یک محدوده نامگذاری شده را با استفاده از 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 ما با ما تماس بگیرید.