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

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.

Planilha de Origem

A seguir estão as etapas para copiar uma única linha em um arquivo do Excel usando C++.

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")));
Imagem mostrando a linha copiada

Imagem mostrando a linha copiada

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.

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")));
Imagem mostrando as linhas copiadas

Imagem mostrando as linhas copiadas

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++.

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")));
Imagem mostrando a coluna copiada

Imagem mostrando a coluna copiada

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.

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")));
Imagem mostrando as colunas copiadas

Imagem mostrando as colunas copiadas

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.

Veja também