Sammanfoga och ta bort celler är en enkel och vanlig funktion i Microsoft Excel. Sammanfogning av celler kan visa sig vara till hjälp i scenarier, till exempel när du har ett kalkylblad med flera kolumner som delar samma rubrik. Du kan slå samman cellerna ovanför kolumnerna för att ge dem en gemensam rubrik. Om sammanslagna celler inte längre behövs kan du ta bort sammanslagningen av dem lika enkelt. Du kan behöva utföra dessa uppgifter i dina C++-program. För det kommer den här artikeln att lära dig hur du sammanfogar och tar bort celler i Excel-kalkylblad programmatiskt med C++.
- C++ API för sammanfogning och upphävande av celler
- Slå samman celler i ett Excel-kalkylblad med C++
- Ta bort sammanslagningen av celler i ett Excel-kalkylblad med C++
- Slå samman ett cellområde i ett Excel-kalkylblad med C++
- Ta bort ett cellområde i ett Excel-kalkylblad med C++
- Slå samman celler i ett namngivet område i ett Excel-kalkylblad med C++
C++ API för sammanfogning och upphävande av celler
Aspose.Cells for C++ är ett inbyggt C++-bibliotek som låter dig skapa, läsa och ändra Excel-filer utan att Microsoft Excel behöver installeras. API:et stöder också sammanfogning och upphävande av celler i ett Excel-kalkylblad. Du kan antingen installera API:t genom NuGet eller ladda ner det direkt från avsnittet Nedladdningar.
PM> Install-Package Aspose.Cells.Cpp
Slå samman celler i ett Excel-kalkylblad med C++
I det här exemplet kommer vi att skapa ett tomt Excel-kalkylblad och slå samman några celler genom att följa stegen nedan.
- Skapa först en instans av klassen IWorkbook.
- Hämta kalkylbladet med metoden IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Hämta cellerna med metoden IWorksheet->GetICells().
- Sammanfoga cellerna med hjälp av ICells->Merge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose:: Cells::Systems::Int32 totalColumns) metod.
- Använd stilar på de sammanslagna cellerna.
- Slutligen, spara utdata Excel-filen med hjälp av IWorkbook->Spara (intrusiveptrAspose::Cells::Systems::String filnamn) metod.
Följande exempelkod visar hur man slår samman celler i ett Excel-kalkylblad med C++.
// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");
// Ladda indata Excel-filen
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Öppna det första kalkylbladet i Excel-filen
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Skapa ett Cells-objekt för att hämta alla celler.
intrusive_ptr<ICells> cells = worksheet->GetICells();
// Sammanfoga celler
cells->Merge(5, 2, 2, 3);
// Lägg in data i cellen
cells->GetObjectByIndex(5, 2)->PutValue((StringPtr)new String("This is a test value"));
// Skapa ett stilobjekt
intrusive_ptr<IStyle> style = cells->GetICell(5, 2)->GetIStyle();
// Skapa ett teckensnittsobjekt
intrusive_ptr<Aspose::Cells::IFont> font = style->GetIFont();
// Ställ in namnet
font->SetName(new String("Times New Roman"));
// Ställ in teckenstorleken
font->SetSize(18);
// Ställ in teckensnittsfärgen
font->SetColor(Systems::Drawing::Color::GetCyan());
// Gör texten fet
font->SetBold(true);
// Gör texten kursiv
font->SetItalic(true);
// Ställ in förgrundsfärgen
style->SetForegroundColor(Systems::Drawing::Color::GetRed());
// Ställ in mönstret
style->SetPattern(BackgroundType_Solid);
// Applicera stilen
cells->GetICell(5, 2)->SetIStyle(style);
// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("MergeCells_out.xlsx")));
Ta bort sammanslagningen av celler i ett Excel-kalkylblad med C++
Följande är stegen för att ta bort sammanslagningen av celler i ett Excel-kalkylblad.
- Ladda Excel-filen med klassen IWorkbook.
- Hämta kalkylbladet som innehåller sammanslagna celler med metoden IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Hämta cellerna med metoden IWorksheet->GetICells().
- Unmerge celler med hjälp av ICells->UnMerge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose::Cells ::Systems::Int32 totalColumns) metod.
- Slutligen, spara utdata Excel-filen med hjälp av IWorkbook->Spara (intrusiveptrAspose::Cells::Systems::String filnamn) metod.
Följande exempelkod visar hur man tar bort celler i ett Excel-kalkylblad med C++.
// Källkatalogens sökväg.
StringPtr srcDir = new String("SourceDirectory\\");
// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");
// Ladda indata Excel-filen
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedCells.xlsx")));
// Öppna det första kalkylbladet i Excel-filen
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Skapa ett Cells-objekt för att hämta alla celler.
intrusive_ptr<ICells> cells = worksheet->GetICells();
// Ta bort sammanslagningen av celler.
cells->UnMerge(5, 2, 2, 3);
// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("UnmergeCells_out.xlsx")));
Slå samman ett cellområde i ett Excel-kalkylblad med C++
Följande är stegen för att slå samman ett cellintervall i ett Excel-kalkylblad.
- Skapa först en instans av klassen IWorkbook.
- Hämta önskat kalkylblad med metoden IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Infoga data i cellen.
- Skapa intervallet med hjälp av IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String adress) metod.
- Slå samman intervallet med metoden IRange->Merge().
- Slutligen, spara utdata Excel-filen med hjälp av IWorkbook->Spara (intrusiveptrAspose::Cells::Systems::String filnamn) metod.
Följande exempelkod visar hur man slår samman ett cellintervall i ett Excel-kalkylblad med C++.
// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");
// Ladda indata Excel-filen
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Öppna det första kalkylbladet i Excel-filen
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Mata in data i A1-cell.
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));
// Skapa ett intervall
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Slå samman intervall till en enda cell
range->Merge();
// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("MergeRangeOfCells_out.xlsx")));
Ta bort ett cellområde i ett Excel-kalkylblad med C++
Följande är stegen för att ta bort ett cellintervall i ett Excel-kalkylblad.
- Ladda Excel-filen med klassen IWorkbook.
- Hämta kalkylbladet som innehåller sammanslagna celler med metoden IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Skapa intervallet med hjälp av IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String adress) metod.
- Ta bort intervallet med metoden IRange->UnMerge().
- Slutligen, spara utdata Excel-filen med hjälp av IWorkbook->Spara (intrusiveptrAspose::Cells::Systems::String filnamn) metod.
Följande exempelkod visar hur man tar bort ett cellintervall i ett Excel-kalkylblad med C++.
// Källkatalogens sökväg.
StringPtr srcDir = new String("SourceDirectory\\");
// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");
// Ladda indata Excel-filen
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));
// Öppna det första kalkylbladet i Excel-filen
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Skapa ett intervall
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Avsluta intervall
range->UnMerge();
// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("UnmergeRangeOfCells_out.xlsx")));
Slå samman celler i ett namngivet område i ett Excel-kalkylblad med C++
Aspose.Cells för C++ ger dig också möjligheten att slå samman cellerna i ett namngivet område. För att uppnå detta, följ stegen nedan.
- Ladda Excel-filen med klassen IWorkbook.
- Hämta kalkylbladet med metoden IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Skapa intervallet med hjälp av IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String adress) metod.
- Ställ in namnet på området med hjälp av IRange->SetName(intrusiveptrAspose::Cells::Systems::String värde) metod.
- Skapa och tillämpa stilar på det namngivna intervallet.
- Slå samman cellerna i det namngivna området med metoden IRange->Merge().
- Slutligen, spara utdata Excel-filen med hjälp av IWorkbook->Spara (intrusiveptrAspose::Cells::Systems::String filnamn) metod.
Följande exempelkod visar hur man slår samman cellerna i ett namngivet område med C++.
// Källkatalogens sökväg.
StringPtr srcDir = new String("SourceDirectory\\");
// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");
// Ladda indata Excel-filen
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));
// Öppna det första kalkylbladet i Excel-filen
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Skapa ett intervall
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Ange intervallnamn
range->SetName(new String("Named_Range"));
// Definiera stilobjekt
intrusive_ptr<IStyle> style = workbook->CreateIStyle();
// Ställ in horisontell justering
style->SetHorizontalAlignment(TextAlignmentType::TextAlignmentType_Center);
// Skapa ett StyleFlag-objekt
intrusive_ptr<IStyleFlag> styleFlag = Factory::CreateIStyleFlag();
// Ställ in horisontell justering to true
styleFlag->SetHorizontalAlignment(true);
// Applicera stilen på sortimentet
range->ApplyIStyle(style, styleFlag);
// Lägg data i intervallet
range->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));
// Sammanfoga intervall
range->Merge();
// Spara Excel-filen
workbook->Save(outDir->StringAppend(new String("MergeNamedRange_out.xlsx")));
Skaffa en gratis licens
Du kan prova API:et utan utvärderingsbegränsningar genom att begära en gratis tillfällig licens.
Slutsats
I den här artikeln har du lärt dig hur du sammanfogar och tar bort celler i ett Excel-kalkylblad med C++. Dessutom har du sett hur man slår samman och tar bort intervall och namngivna intervall med Aspose.Cells för C++ API. API:et tillhandahåller många ytterligare funktioner för att arbeta med Excel-filer som du kan utforska i detalj genom att besöka den officiella dokumentationen. Om du har några frågor är du välkommen att kontakta oss på vårt gratis supportforum.