Merging och upplösning av celler med C++
Introduktion
Du vill inte alltid ha samma antal celler i varje rad eller kolumn. Till exempel kan du vilja lägga en titel i en cell som spänner över flera kolumner. Eller om du skapar en faktura kan du vilja ha färre kolumner för den totala summan. För att göra en cell från två eller flera celler, sammanslag dem. Microsoft Excel låter användare välja filer och sammanfoga dem för att strukturera kalkylbladet på önskat sätt.
Sammanslagning av celler i ett kalkylblad
Sammanslagning av celler i Microsoft Excel
Följande steg beskriver hur man sammanslår celler i kalkylbladet med hjälp av MS Excel.
- Kopiera den data du vill ha till den övre vänstra cellen inom området.
- Välj cellerna du vill sammanfoga.
- För att sammanfoga celler i en rad eller kolumn och centrera cellinnehållet klickar du på ikonen Sammanfoga och centrerat på verktygsfältet Formatering.
Sammanslagning av celler med Aspose.Cells
Aspose::Cells::Cells
-klassen har några användbara metoder för denna uppgift. Till exempel slår metoden Merge()
samman cellerna till en enskild cell inom ett specificerat område.
Följande exempel visar hur man slår samman celler (C6:E7) i en arbetsbok.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Create a Workbook
Workbook wbk;
// Create a Worksheet and get the first sheet
Worksheet worksheet = wbk.GetWorksheets().Get(0);
// Create a Cells object to fetch all the cells
Cells cells = worksheet.GetCells();
// Merge some Cells (C6:E7) into a single C6 Cell
cells.Merge(5, 2, 2, 3);
// Input data into C6 Cell
worksheet.GetCells().Get(5, 2).PutValue(u"This is my value");
// Create a Style object to fetch the Style of C6 Cell
Style style = worksheet.GetCells().Get(5, 2).GetStyle();
// Create a Font object
Font font = style.GetFont();
// Set the name
font.SetName(u"Times New Roman");
// Set the font size
font.SetSize(18);
// Set the font color
font.SetColor(Color::Blue());
// Bold the text
font.SetIsBold(true);
// Make it italic
font.SetIsItalic(true);
// Set the background color of C6 Cell to Red
style.SetForegroundColor(Color::Red());
style.SetPattern(BackgroundType::Solid);
// Apply the Style to C6 Cell
worksheet.GetCells().Get(5, 2).SetStyle(style);
// Save the Workbook
wbk.Save(outDir + u"mergingcells.out.xls");
std::cout << "Workbook saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Avfussning (delning) av sammanslagna celler
Använda Microsoft Excel
Följande steg beskriver hur man delar sammanslagna celler med hjälp av Microsoft Excel.
- Välj den sammanslagna cellen. När cellerna har kombinerats väljs Slå samman och centrera på Formateringsverktygsfältet.
- Klicka på Slå samman och centrera på Formateringsverktygsfältet.
Använda Aspose.Cells
Klassen Aspose::Cells::Cells
har en metod som heter UnMerge()
som delar upp cellerna till deras ursprungliga tillstånd. Metoden upplöser cellerna med hjälp av cellreferensen i det sammanslagna cellområdet.
Följande exempel visar hur man delar de sammanslagna cellerna (C6). Exemplet använder filen som skapades i det föregående exemplet och delar de sammanslagna cellerna.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input excel file
U16String inputFilePath = srcDir + u"mergingcells.xls";
// Path of output excel file
U16String outputFilePath = outDir + u"unmergingcells.out.xls";
// Create a Workbook and open the excel file
Workbook wbk(inputFilePath);
// Get the first worksheet
Worksheet worksheet = wbk.GetWorksheets().Get(0);
// Get the Cells object to fetch all the cells
Cells cells = worksheet.GetCells();
// Unmerge the cells
cells.UnMerge(5, 2, 2, 3);
// Save the file
wbk.Save(outputFilePath);
std::cout << "Cells unmerged successfully!" << std::endl;
Aspose::Cells::Cleanup();
}