Copiar linhas e colunas é uma tarefa comum executada ao trabalhar com arquivos do Excel. Pode haver situações em que você precise copiar linhas ou colunas em arquivos do Excel programaticamente. Para esses casos, este artigo ensinará como copiar linhas e colunas em arquivos do Excel usando C++.
- API C++ para copiar linhas e colunas em arquivos do Excel
- Copiar uma única linha em um arquivo do Excel usando C++
- Copiando várias linhas em um arquivo do Excel usando C++
- Copiar uma única coluna em um arquivo do Excel usando C++
- Copiando várias colunas em um arquivo do Excel usando C++
API C++ para copiar linhas e colunas em arquivos do Excel
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 a capacidade de copiar linhas e colunas em arquivos 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
Copiar uma única linha em um arquivo do Excel usando C++
A seguir está a imagem do arquivo Excel de origem que usaremos nos exemplos a seguir.
A seguir estão as etapas para copiar uma única linha em um arquivo do Excel usando C++.
- Carregue o arquivo Excel usando a classe IWorkbook.
- Recupere a planilha onde você deseja copiar a linha.
- Copie a linha usando o CopyIRow(intrusiveptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceRowIndex, Aspose::Cells::Systems::Int32 destinationRowIndex).
- Salve o arquivo do Excel usando o IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String fileName) método.
O código de exemplo a seguir mostra como copiar uma linha em um arquivo do Excel usando C++.
// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\Excel\\");
// 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("Sample1.xlsx")));
// Obter a primeira planilha
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Copiar linha
worksheet->GetICells()->CopyIRow(worksheet->GetICells(), 1, 15);
// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("CopyRow_out.xlsx")));
Copiando várias linhas em um arquivo do Excel usando C++
Para copiar várias linhas, usaremos o método CopyIRows que aceita um parâmetro adicional indicando o número total de linhas a serem copiadas. Para copiar várias linhas, siga as etapas abaixo.
- Carregue o arquivo Excel usando a classe IWorkbook.
- Recupere a planilha onde você deseja copiar as linhas.
- Copie as linhas usando o CopyIRows(intrusiveptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceRowIndex, Aspose::Cells::Systems::Int32 destinationRowIndex, Aspose::Cells::Systems::Int32 rowNumber).
- Salve o arquivo do Excel usando o IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String fileName) método.
O código de exemplo a seguir mostra como copiar várias linhas em um arquivo do Excel usando C++.
// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\Excel\\");
// 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("Sample1.xlsx")));
// Obter a primeira planilha
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Copiar linhas
worksheet->GetICells()->CopyIRows(worksheet->GetICells(), 1, 15, 3);
// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("CopyRows_out.xlsx")));
Copiar uma única coluna em um arquivo do Excel usando C++
A seguir estão as etapas para copiar uma única coluna em um arquivo do Excel usando C++.
- Carregue o arquivo Excel usando a classe IWorkbook.
- Recupere a planilha onde você deseja copiar a coluna.
- Copie a coluna usando o CopyIColumn(intrusiveptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceColumnIndex, Aspose::Cells::Systems::Int32 destinationColumnIndex).
- Salve o arquivo do Excel usando o IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String fileName) método.
O código de exemplo a seguir mostra como copiar uma única coluna em um arquivo do Excel usando C++.
// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\Excel\\");
// 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("Sample1.xlsx")));
// Obter a primeira planilha
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Copiar Coluna
worksheet->GetICells()->CopyIColumn(worksheet->GetICells(), 0, 6);
// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("CopyColumn_out.xlsx")));
Copiando várias colunas em um arquivo do Excel usando C++
Para copiar várias colunas, usaremos o método CopyIColumns que aceita um parâmetro adicional indicando o número total de colunas a serem copiadas. Para copiar várias colunas, siga as etapas abaixo.
- Carregue o arquivo Excel usando a classe IWorkbook.
- Recupere a planilha onde você deseja copiar as colunas.
- Copie as colunas usando o CopyIColumns(intrusiveptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceColumnIndex, Aspose::Cells::Systems::Int32 destinationColumnIndex, Aspose::Cells::Systems::Int32 columnNumber).
- Salve o arquivo do Excel usando o IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String fileName) método.
O código de exemplo a seguir mostra como copiar várias colunas em um arquivo do Excel usando C++.
// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\Excel\\");
// 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("Sample1.xlsx")));
// Obter a primeira planilha
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Copiar colunas
worksheet->GetICells()->CopyIColumns(worksheet->GetICells(), 0, 6, 3);
// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("CopyColumns_out.xlsx")));
Obtenha uma licença gratuita
Para experimentar a API sem limitações de avaliação, você pode solicitar uma licença temporária gratuita.
Conclusão
Neste artigo, você aprendeu como copiar linhas e colunas em um arquivo do Excel usando C++. Os exemplos de código compartilhado mostram como copiar linhas e colunas únicas e múltiplas em um arquivo do Excel. Usamos a API Aspose.Cells para C++ para conseguir isso. É uma API robusta que fornece muitos recursos adicionais para trabalhar com arquivos do Excel. Você pode explorar a API 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.