Copiar o mover hojas de cálculo de Excel

Los archivos de Excel se utilizan para administrar datos complejos, como presupuestos departamentales o informes de ventas anuales. Puede haber situaciones en las que tenga una plantilla preparada que quiera usar para crear un informe. Para esto, puede crear una copia de la hoja de trabajo de la plantilla. Es posible que también deba organizar las hojas de trabajo para demostrar el flujo de datos. Para tales casos, puede reorganizar las hojas de trabajo de acuerdo con sus requisitos. A la luz de esto, aprenderá cómo copiar y mover hojas de trabajo mediante programación usando C++.

API de C++ para copiar o mover hojas de cálculo de Excel

Aspose.Cells for C++ es una biblioteca nativa de C++ que le permite crear, leer y actualizar archivos de Excel sin necesidad de instalar Microsoft Excel. La API también admite copiar y mover hojas de cálculo de Excel. Puede instalar la API a través de NuGet o descargarla directamente desde la sección Descargas.

PM> Install-Package Aspose.Cells.Cpp

Copie hojas de trabajo dentro de un libro de Excel usando C++

Los siguientes son los pasos para copiar hojas de cálculo dentro de un libro de Excel.

El siguiente es el código de muestra para copiar una hoja de trabajo dentro de un libro de Excel usando C++.

// Ruta del directorio de origen.
StringPtr srcDir = new String("SourceDirectory\\");

// Ruta del directorio de salida.
StringPtr outDir = new String("OutputDirectory\\");

// Cargue el archivo de Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Recuperar hojas de trabajo
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// Copie datos a una nueva hoja desde una hoja existente dentro del Workbook.
sheets->AddCopy(new String("Sheet1"));

// Guarde el archivo de Excel
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));

Copie hojas de trabajo de un Workbook a otro

Aspose.Cells for C++ también le permite copiar hojas de trabajo entre dos archivos de Excel. Los siguientes son los pasos para copiar una hoja de cálculo de un archivo de Excel a otro.

El siguiente es el código de muestra para copiar una hoja de trabajo de un libro de Excel a otro usando C++.

// Ruta del directorio de origen.
StringPtr srcDir = new String("SourceDirectory\\");

// Ruta del directorio de salida.
StringPtr outDir = new String("OutputDirectory\\");

// Cargue el archivo fuente de Excel
intrusive_ptr<IWorkbook> sourceWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

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

// Recuperar las hojas de trabajo del libro de origen
intrusive_ptr<IWorksheetCollection> sheets = sourceWorkbook->GetIWorksheets();

// Recupere la hoja de trabajo que desea copiar
intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(0);

// Copie la hoja de trabajo previamente recuperada al nuevo Workbook
destinationWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);

// Guarde el archivo de Excel
destinationWorkbook->Save(outDir->StringAppend(new String("book1_out.xlsx")));

Mueva la hoja de trabajo a una posición diferente usando C++

Los siguientes son los pasos para cambiar la posición de la hoja de cálculo dentro de un libro de Excel.

El siguiente es el código de muestra para mover la hoja de trabajo a una posición diferente dentro del mismo Workbook usando C++.

// Ruta del directorio de origen.
StringPtr srcDir = new String("SourceDirectory\\");

// Ruta del directorio de salida.
StringPtr outDir = new String("OutputDirectory\\");

// Cargue el archivo de Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Recuperar hojas de trabajo
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// Accede a la primera hoja
intrusive_ptr<IWorksheet> sheet = sheets->GetObjectByIndex(0);

// Mueva la primera hoja a la segunda posición en el Workbook.
sheet->MoveTo(1);

// Guarde el archivo de Excel
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));

Obtenga una licencia gratis

Puede probar la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, ha aprendido a copiar hojas de trabajo dentro del mismo libro de Excel o entre diferentes libros de trabajo. Además, ha visto cómo cambiar la posición de la hoja de trabajo dentro de un archivo de Excel. Aspose.Cells for C++ ofrece muchas más funciones para trabajar con archivos de Excel que puede explorar visitando la documentación oficial. Si tiene alguna pregunta, no dude en comunicarse con nosotros en nuestro foro de soporte gratuito.

Ver también