Об’єднання та роз’єднання комірок є простою та широко використовуваною функцією Microsoft Excel. Об’єднання комірок може виявитися корисним у сценаріях, наприклад, коли у вас є робочий аркуш із кількома стовпцями з однаковими заголовками. Ви можете об’єднати клітинки над стовпцями, щоб надати їм спільний заголовок. Якщо об’єднані комірки більше не потрібні, ви можете скасувати їх так само легко. Вам може знадобитися виконати ці завдання у ваших програмах C++. Для цього ця стаття навчить вас, як програмно об’єднувати та роз’єднувати комірки на робочих аркушах Excel за допомогою C++.
- C++ API для об’єднання та роз’єднання комірок
- Об’єднайте клітинки на аркуші Excel за допомогою C++
- Роз’єднайте клітинки на аркуші Excel за допомогою C++
- Об’єднайте діапазон клітинок на аркуші Excel за допомогою C++
- Роз’єднайте діапазон клітинок на аркуші Excel за допомогою C++
- Об’єднайте клітинки іменованого діапазону на робочому аркуші Excel за допомогою C++
C++ API для об’єднання та роз’єднання комірок
Aspose.Cells for C++ — це рідна бібліотека C++, яка дозволяє створювати, читати та змінювати файли Excel без встановлення Microsoft Excel. API також підтримує об’єднання та роз’єднання клітинок на аркуші 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:: Метод Cells::Systems::Int32 totalColumns).
- Застосуйте стилі до об’єднаних клітинок.
- Нарешті, збережіть вихідний файл 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);
// Створіть об’єкт 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);
// Застосуйте стиль
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 fileName) метод.
Наведений нижче приклад коду демонструє, як роз’єднати клітинки на аркуші 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);
// Створіть об’єкт Cells, щоб отримати всі клітинки.
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(intrusiveptr)Aspose::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(intrusiveptr)Aspose::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"));
// Роз’єднати діапазон
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(intrusiveptr)Aspose::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")));
Отримайте безкоштовну ліцензію
Ви можете спробувати API без оціночних обмежень, надіславши запит на безкоштовну тимчасову ліцензію.
Висновок
У цій статті ви дізналися, як об’єднувати та роз’єднувати клітинки на аркуші Excel за допомогою C++. Крім того, ви бачили, як об’єднувати та роз’єднувати діапазони та іменовані діапазони за допомогою API Aspose.Cells for C++. API надає багато додаткових функцій для роботи з файлами Excel, які ви можете детально вивчити, відвідавши офіційну документацію. У разі будь-яких запитань зв’яжіться з нами на нашому безкоштовному форумі підтримки.