Mesclar e desfazer a mesclagem de células é um recurso simples e comumente usado do Microsoft Excel. Mesclar células pode ser útil em cenários, por exemplo, quando você tem uma planilha com várias colunas que compartilham o mesmo título. Você pode mesclar as células acima das colunas para dar a elas um título comum. Caso as células mescladas não sejam mais necessárias, você pode desfazer a mesclagem com a mesma facilidade. Talvez você precise executar essas tarefas em seus aplicativos C++. Para isso, este artigo ensinará como mesclar e desfazer a mesclagem de células em planilhas do Excel programaticamente usando C++.
- API C++ para mesclar e desfazer a mesclagem de células
- Mesclar células em uma planilha do Excel usando C++
- Unmerge células em uma planilha do Excel usando C++
- Mesclar um intervalo de células em uma planilha do Excel usando C++
- Unmerge um intervalo de células em uma planilha do Excel usando C++
- Mesclar células de um intervalo nomeado em uma planilha do Excel usando C++
API C++ para mesclar e desfazer a mesclagem de células
Aspose.Cells for C++ é uma biblioteca nativa de C++ que permite criar, ler e modificar arquivos Excel sem exigir a instalação do Microsoft Excel. A API também oferece suporte para mesclar e desfazer a mesclagem de células em uma planilha do Excel. Você pode instalar a API por meio do NuGet ou baixá-la diretamente da seção Downloads.
PM> Install-Package Aspose.Cells.Cpp
Mesclar células em uma planilha do Excel usando C++
Neste exemplo, criaremos uma planilha vazia do Excel e mesclaremos algumas células seguindo as etapas abaixo.
- Primeiramente, crie uma instância da classe IWorkbook.
- Recupere a planilha usando o método IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Recupere as células usando o método IWorksheet->GetICells().
- Mescle as células usando ICells->Merge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose:: Cells::Systems::Int32 totalColumns).
- Aplique estilos às células mescladas.
- Finalmente, salve o arquivo Excel de saída usando o IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) método.
O código de exemplo a seguir mostra como mesclar células em uma planilha do Excel usando C++.
// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");
// Carregar o arquivo Excel de entrada
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Acesse a primeira planilha no arquivo Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Crie um objeto Cells para buscar todas as células.
intrusive_ptr<ICells> cells = worksheet->GetICells();
// Mesclar células
cells->Merge(5, 2, 2, 3);
// Colocar dados na célula
cells->GetObjectByIndex(5, 2)->PutValue((StringPtr)new String("This is a test value"));
// Criar um objeto de estilo
intrusive_ptr<IStyle> style = cells->GetICell(5, 2)->GetIStyle();
// Criar um objeto Font
intrusive_ptr<Aspose::Cells::IFont> font = style->GetIFont();
// Defina o nome
font->SetName(new String("Times New Roman"));
// Defina o tamanho da fonte
font->SetSize(18);
// Defina a cor da fonte
font->SetColor(Systems::Drawing::Color::GetCyan());
// Deixe o texto em negrito
font->SetBold(true);
// Deixe o texto em itálico
font->SetItalic(true);
// Definir a cor do primeiro plano
style->SetForegroundColor(Systems::Drawing::Color::GetRed());
// Definir o padrão
style->SetPattern(BackgroundType_Solid);
// Aplicar o estilo
cells->GetICell(5, 2)->SetIStyle(style);
// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("MergeCells_out.xlsx")));
Unmerge células em uma planilha do Excel usando C++
A seguir estão as etapas para desfazer a mesclagem de células em uma planilha do Excel.
- Carregue o arquivo Excel usando a classe IWorkbook.
- Recupere a planilha contendo células mescladas usando o método IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Recupere as células usando o método IWorksheet->GetICells().
- Desconecte células usando ICells->UnMerge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose::Cells ::Systems::Int32 totalColumns).
- Finalmente, salve o arquivo Excel de saída usando o IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) método.
O código de exemplo a seguir demonstra como desfazer a mesclagem de células em uma planilha do Excel usando C++.
// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\");
// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");
// Carregar o arquivo Excel de entrada
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedCells.xlsx")));
// Acesse a primeira planilha no arquivo Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Crie um objeto Cells para buscar todas as células.
intrusive_ptr<ICells> cells = worksheet->GetICells();
// Desfazer a mesclagem das células.
cells->UnMerge(5, 2, 2, 3);
// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("UnmergeCells_out.xlsx")));
Mesclar um intervalo de células em uma planilha do Excel usando C++
A seguir estão as etapas para mesclar um intervalo de células em uma planilha do Excel.
- Primeiramente, crie uma instância da classe IWorkbook.
- Recupere a planilha desejada usando o método IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Insira os dados na célula.
- Crie o intervalo usando o IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String endereço) método.
- Mescle o intervalo usando o método IRange->Merge().
- Finalmente, salve o arquivo Excel de saída usando o IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) método.
O código de exemplo a seguir mostra como mesclar um intervalo de células em uma planilha do Excel usando C++.
// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");
// Carregar o arquivo Excel de entrada
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Acesse a primeira planilha no arquivo Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Dados de entrada na célula A1.
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));
// Criar um intervalo
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Mesclar intervalo em uma única célula
range->Merge();
// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("MergeRangeOfCells_out.xlsx")));
Unmerge um intervalo de células em uma planilha do Excel usando C++
A seguir estão as etapas para desfazer a mesclagem de um intervalo de células em uma planilha do Excel.
- Carregue o arquivo do Excel usando a classe IWorkbook.
- Recupere a planilha contendo células mescladas usando o método IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Crie o intervalo usando IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String endereço) método.
- Desconecte o intervalo usando o método IRange->UnMerge().
- Finalmente, salve o arquivo Excel de saída usando o IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) método.
O código de exemplo a seguir mostra como desfazer a mesclagem de um intervalo de células em uma planilha do Excel usando C++.
// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\");
// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");
// Carregar o arquivo Excel de entrada
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));
// Acesse a primeira planilha no arquivo Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Criar um intervalo
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Desfazer mesclagem
range->UnMerge();
// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("UnmergeRangeOfCells_out.xlsx")));
Mesclar células de um intervalo nomeado em uma planilha do Excel usando C++
Aspose.Cells para C++ também oferece a capacidade de mesclar as células de um intervalo nomeado. Para conseguir isso, siga os passos abaixo.
- Carregue o arquivo Excel usando a classe IWorkbook.
- Recupere a planilha usando o método IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Crie o intervalo usando IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String endereço) método.
- Defina o nome do intervalo usando o IRange->SetName(intrusiveptrAspose::Cells::Systems::String valor) método.
- Crie e aplique estilos ao intervalo nomeado.
- Mescle as células do intervalo nomeado usando o método IRange->Merge().
- Finalmente, salve o arquivo Excel de saída usando o IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) método.
O código de exemplo a seguir demonstra como mesclar as células de um intervalo nomeado usando C++.
// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\");
// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");
// Carregar o arquivo Excel de entrada
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));
// Acesse a primeira planilha no arquivo Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Criar um intervalo
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Definir nome do intervalo
range->SetName(new String("Named_Range"));
// Definir objeto de estilo
intrusive_ptr<IStyle> style = workbook->CreateIStyle();
// Definir alinhamento horizontal
style->SetHorizontalAlignment(TextAlignmentType::TextAlignmentType_Center);
// Criar um objeto StyleFlag
intrusive_ptr<IStyleFlag> styleFlag = Factory::CreateIStyleFlag();
// Definir alinhamento horizontal to true
styleFlag->SetHorizontalAlignment(true);
// Aplicar o estilo ao intervalo
range->ApplyIStyle(style, styleFlag);
// Colocar dados no intervalo
range->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));
// Mesclar intervalo
range->Merge();
// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("MergeNamedRange_out.xlsx")));
Obtenha uma licença gratuita
Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.
Conclusão
Neste artigo, você aprendeu como mesclar e desfazer a mesclagem de células em uma planilha do Excel usando C++. Além disso, você viu como mesclar e desfazer a mesclagem de intervalos e intervalos nomeados usando Aspose.Cells para C++ API. A API fornece muitos recursos adicionais para trabalhar com arquivos do Excel que você pode explorar em detalhes visitando a documentação oficial. Em caso de dúvidas, sinta-se à vontade para entrar em contato conosco em nosso fórum de suporte gratuito.