Sloučení a zrušení sloučení buněk je jednoduchá a běžně používaná funkce aplikace Microsoft Excel. Sloučení buněk se může ukázat jako užitečné ve scénářích, například když máte list s více sloupci, které sdílejí stejný nadpis. Buňky nad sloupci můžete sloučit a dát jim společný nadpis. V případě, že sloučené buňky již nejsou potřeba, můžete je stejně snadno zrušit. Možná budete muset provést tyto úlohy ve svých aplikacích C++. Za tímto účelem vás tento článek naučí, jak sloučit a zrušit sloučení buněk v listech aplikace Excel programově pomocí C++.
- C++ API pro slučování a rozpojování buněk
- Sloučit buňky v excelovém listu pomocí C++
- Zrušte sloučení buněk v listu aplikace Excel pomocí C++
- Sloučit rozsah buněk v excelovém listu pomocí C++
- Zrušte sloučení rozsahu buněk v listu aplikace Excel pomocí C++
- Sloučit buňky pojmenovaného rozsahu v listu aplikace Excel pomocí C++
C++ API pro slučování a rozpojování buněk
Aspose.Cells for C++ je nativní knihovna C++, která umožňuje vytvářet, číst a upravovat soubory aplikace Excel bez nutnosti instalace aplikace Microsoft Excel. Rozhraní API také podporuje sloučení a zrušení sloučení buněk v listu aplikace Excel. Rozhraní API můžete nainstalovat buď prostřednictvím NuGet, nebo si jej stáhnout přímo ze sekce Downloads.
PM> Install-Package Aspose.Cells.Cpp
Sloučit buňky v excelovém listu pomocí C++
V tomto příkladu vytvoříme prázdný list aplikace Excel a sloučíme několik buněk podle níže uvedených kroků.
- Nejprve vytvořte instanci třídy IWorkbook.
- Získejte list pomocí metody IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Načtěte buňky pomocí metody IWorksheet->GetICells().
- Sloučit buňky pomocí ICells->Merge(Apose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose:: Cells::Systems::Int32 totalColumns) metoda.
- Použijte styly na sloučené buňky.
- Nakonec uložte výstupní soubor Excel pomocí IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) metoda.
Následující ukázkový kód ukazuje, jak sloučit buňky v listu aplikace Excel pomocí C++.
// Cesta k výstupnímu adresáři.
StringPtr outDir = new String("OutputDirectory\\");
// Načtěte vstupní soubor Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Otevřete první list v souboru aplikace Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Vytvořte objekt Cells pro načtení všech buněk.
intrusive_ptr<ICells> cells = worksheet->GetICells();
// Spojit buňky
cells->Merge(5, 2, 2, 3);
// Vložte data do buňky
cells->GetObjectByIndex(5, 2)->PutValue((StringPtr)new String("This is a test value"));
// Vytvořte objekt Styl
intrusive_ptr<IStyle> style = cells->GetICell(5, 2)->GetIStyle();
// Vytvořte objekt Font
intrusive_ptr<Aspose::Cells::IFont> font = style->GetIFont();
// Nastavte název
font->SetName(new String("Times New Roman"));
// Nastavte velikost písma
font->SetSize(18);
// Nastavte barvu písma
font->SetColor(Systems::Drawing::Color::GetCyan());
// Udělejte text tučným písmem
font->SetBold(true);
// Udělejte text kurzívou
font->SetItalic(true);
// Nastavte barvu popředí
style->SetForegroundColor(Systems::Drawing::Color::GetRed());
// Nastavte Vzor
style->SetPattern(BackgroundType_Solid);
// Použijte styl
cells->GetICell(5, 2)->SetIStyle(style);
// Uložte soubor Excel
workbook->Save(outDir->StringAppend(new String("MergeCells_out.xlsx")));

Obrázek výstupního souboru Excel generovaný ukázkovým kódem
Zrušte sloučení buněk v listu aplikace Excel pomocí C++
Následují kroky pro zrušení sloučení buněk v listu aplikace Excel.
- Načtěte soubor Excel pomocí třídy IWorkbook.
- Získejte list obsahující sloučené buňky pomocí metody IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Načtěte buňky pomocí metody IWorksheet->GetICells().
- Zrušte sloučení buněk pomocí ICells->UnMerge(Apose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose::Cells ::Systems::Int32 totalColumns) metoda.
- Nakonec uložte výstupní soubor Excel pomocí IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) metoda.
Následující ukázkový kód ukazuje, jak zrušit sloučení buněk v listu aplikace Excel pomocí C++.
// Cesta ke zdrojovému adresáři.
StringPtr srcDir = new String("SourceDirectory\\");
// Cesta výstupního adresáře.
StringPtr outDir = new String("OutputDirectory\\");
// Načtěte vstupní soubor Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedCells.xlsx")));
// Otevřete první list v souboru aplikace Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Vytvořte objekt Cells pro načtení všech buněk.
intrusive_ptr<ICells> cells = worksheet->GetICells();
// Zrušte sloučení buněk.
cells->UnMerge(5, 2, 2, 3);
// Uložte soubor aplikace Excel
workbook->Save(outDir->StringAppend(new String("UnmergeCells_out.xlsx")));

Obrázek výstupního souboru Excel generovaný ukázkovým kódem
Sloučit rozsah buněk v excelovém listu pomocí C++
Následují kroky ke sloučení oblasti buněk v listu aplikace Excel.
- Nejprve vytvořte instanci třídy IWorkbook.
- Získejte požadovaný list pomocí metody IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Vložte data do buňky.
- Vytvořte rozsah pomocí IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String adresa) metoda.
- Sloučit rozsah pomocí metody IRange->Merge().
- Nakonec uložte výstupní soubor Excel pomocí IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) metoda.
Následující ukázkový kód ukazuje, jak sloučit oblast buněk v listu aplikace Excel pomocí C++.
// Cesta výstupního adresáře.
StringPtr outDir = new String("OutputDirectory\\");
// Načtěte vstupní soubor Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Otevřete první list v souboru aplikace Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Zadejte data do buňky A1.
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));
// Vytvořte rozsah
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Sloučit rozsah do jedné buňky
range->Merge();
// Uložte soubor aplikace Excel
workbook->Save(outDir->StringAppend(new String("MergeRangeOfCells_out.xlsx")));

Obrázek výstupního souboru Excel generovaný ukázkovým kódem
Zrušte sloučení rozsahu buněk v listu aplikace Excel pomocí C++
Následují kroky pro zrušení sloučení oblasti buněk v listu aplikace Excel.
- Načtěte soubor Excel pomocí třídy IWorkbook.
- Získejte list obsahující sloučené buňky pomocí metody IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Vytvořte rozsah pomocí IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String adresa) metoda.
- Zrušte sloučení rozsahu pomocí metody IRange->UnMerge().
- Nakonec uložte výstupní soubor Excel pomocí IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) metoda.
Následující ukázkový kód ukazuje, jak zrušit sloučení oblasti buněk v listu aplikace Excel pomocí C++.
// Cesta ke zdrojovému adresáři.
StringPtr srcDir = new String("SourceDirectory\\");
// Cesta výstupního adresáře.
StringPtr outDir = new String("OutputDirectory\\");
// Načtěte vstupní soubor Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));
// Otevřete první list v souboru aplikace Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Vytvořte rozsah
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Zrušit sloučení rozsahu
range->UnMerge();
// Uložte soubor aplikace Excel
workbook->Save(outDir->StringAppend(new String("UnmergeRangeOfCells_out.xlsx")));

Obrázek výstupního souboru Excel generovaný ukázkovým kódem
Sloučit buňky pojmenovaného rozsahu v listu aplikace Excel pomocí C++
Aspose.Cells for C++ vám také poskytuje možnost sloučit buňky pojmenovaného rozsahu. Chcete-li toho dosáhnout, postupujte podle kroků uvedených níže.
- Načtěte soubor Excel pomocí třídy IWorkbook.
- Získejte list pomocí metody IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Vytvořte rozsah pomocí IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String adresa) metoda.
- Nastavte název rozsahu pomocí IRange->SetName(intrusiveptrAspose::Cells::Systems::String hodnota) metoda.
- Vytvořte a aplikujte styly na pojmenovaný rozsah.
- Sloučte buňky pojmenovaného rozsahu pomocí metody IRange->Merge().
- Nakonec uložte výstupní soubor Excel pomocí IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) metoda.
Následující ukázkový kód ukazuje, jak sloučit buňky pojmenované oblasti pomocí C++.
// Cesta ke zdrojovému adresáři.
StringPtr srcDir = new String("SourceDirectory\\");
// Cesta výstupního adresáře.
StringPtr outDir = new String("OutputDirectory\\");
// Načtěte vstupní soubor Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));
// Otevřete první list v souboru aplikace Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Vytvořte rozsah
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Nastavit název rozsahu
range->SetName(new String("Named_Range"));
// Definujte objekt stylu
intrusive_ptr<IStyle> style = workbook->CreateIStyle();
// Nastavte vodorovné zarovnání
style->SetHorizontalAlignment(TextAlignmentType::TextAlignmentType_Center);
// Vytvořte objekt StyleFlag
intrusive_ptr<IStyleFlag> styleFlag = Factory::CreateIStyleFlag();
// Nastavte vodorovné zarovnání to true
styleFlag->SetHorizontalAlignment(true);
// Použijte styl na rozsah
range->ApplyIStyle(style, styleFlag);
// Vložte data do rozsahu
range->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));
// Sloučit rozsah
range->Merge();
// Uložte soubor aplikace Excel
workbook->Save(outDir->StringAppend(new String("MergeNamedRange_out.xlsx")));

Obrázek výstupního souboru Excel generovaný ukázkovým kódem
Získejte bezplatnou licenci
Rozhraní API můžete vyzkoušet bez omezení hodnocení tím, že požádáte o bezplatnou dočasnou licenci.
Závěr
V tomto článku jste se naučili, jak sloučit a zrušit sloučení buněk v listu aplikace Excel pomocí C++. Dále jste viděli, jak sloučit a zrušit sloučení rozsahů a pojmenovaných rozsahů pomocí Aspose.Cells for C++ API. Rozhraní API poskytuje mnoho dalších funkcí pro práci se soubory aplikace Excel, které můžete podrobně prozkoumat na oficiální dokumentaci. V případě jakýchkoli dotazů nás neváhejte kontaktovat na našem bezplatném fóru podpory.