Copiar ou mover planilhas do Excel

Os arquivos do Excel são usados para gerenciar dados complexos, como orçamentos departamentais ou relatórios de vendas anuais. Pode haver situações em que você tenha um modelo pronto que deseja usar para criar um relatório. Para isso, você pode criar uma cópia da planilha modelo. Você também pode precisar organizar as planilhas para demonstrar o fluxo de dados. Para esses casos, você pode reorganizar as planilhas de acordo com suas necessidades. À luz disso, você aprenderá como copiar e mover planilhas programaticamente usando C++.

API C++ para copiar ou mover planilhas do Excel

Aspose.Cells for C++ é uma biblioteca nativa de C++ que permite criar, ler e atualizar arquivos do Excel sem exigir a instalação do Microsoft Excel. A API também suporta copiar e mover planilhas 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 planilhas em uma pasta de trabalho do Excel usando C++

A seguir estão as etapas para copiar planilhas em uma pasta de trabalho do Excel.

Veja a seguir o código de exemplo para copiar uma planilha em uma pasta de trabalho 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
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Recuperar planilhas
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// Copie dados para uma nova planilha de uma planilha existente na pasta de trabalho.
sheets->AddCopy(new String("Sheet1"));

// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));

Copiar planilhas de uma pasta de trabalho para outra

Aspose.Cells para C++ também permite copiar planilhas entre dois arquivos do Excel. A seguir estão as etapas para copiar uma planilha de um arquivo do Excel para outro.

A seguir está o código de exemplo para copiar uma planilha de uma pasta de trabalho do Excel para outra 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 origem
intrusive_ptr<IWorkbook> sourceWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Carregar o arquivo Excel de destino
intrusive_ptr<IWorkbook> destinationWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("book1.xlsx")));

// Recuperar planilhas da pasta de trabalho de origem
intrusive_ptr<IWorksheetCollection> sheets = sourceWorkbook->GetIWorksheets();

// Recupere a planilha que você deseja copiar
intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(0);

// Copie a planilha recuperada anteriormente para a nova pasta de trabalho
destinationWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);

// Salve o arquivo Excel
destinationWorkbook->Save(outDir->StringAppend(new String("book1_out.xlsx")));

Mover a planilha para uma posição diferente usando C++

A seguir estão as etapas para alterar a posição da planilha em uma pasta de trabalho do Excel.

Veja a seguir o código de exemplo para mover a planilha para uma posição diferente na mesma pasta de trabalho 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
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Recuperar planilhas
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// Acesse a primeira planilha
intrusive_ptr<IWorksheet> sheet = sheets->GetObjectByIndex(0);

// Mova a primeira planilha para a segunda posição na pasta de trabalho.
sheet->MoveTo(1);

// Salve o arquivo Excel
workbook->Save(outDir->StringAppend(new String("Sample1_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 copiar planilhas na mesma pasta de trabalho do Excel ou entre pastas de trabalho diferentes. Além disso, você viu como alterar a posição da planilha dentro de um arquivo Excel. O Aspose.Cells para C++ fornece muitos outros recursos para trabalhar com arquivos do Excel que você pode explorar 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