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
- Copie hojas de trabajo dentro de un libro de Excel usando C++
- Copie hojas de trabajo de un Workbook a otro
- Mueva la hoja de trabajo a una posición diferente usando C++
- Obtenga una licencia gratis
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.
- Cargue el archivo de Excel usando la clase IWorkbook.
- Recupere la colección de hojas de trabajo usando el método IWorkbook->GetIWorksheets().
- Agregue la copia de la hoja de trabajo requerida usando IWorksheetCollection->AddCopy (intrusive\ptrAspose::Cells::Systems::String hojaNombre) método.
- Finalmente, guarde el archivo de Excel usando IWorkbook->Save (intrusive\ptrAspose::Cells::Systems::String nombre de archivo) método.
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.
- En primer lugar, cargue los archivos de Excel de origen y destino utilizando la clase IWorkbook.
- Recupere la colección de hojas de cálculo del libro de origen mediante el método IWorkbook->GetIWorksheets().
- Recupere la hoja de trabajo que desea copiar utilizando el método IWorksheetCollection->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Copie la hoja de cálculo en el Workbook de destino mediante IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index)->Copy (intrusive\ptrAspose::Cells::IWorksheet sourceSheet) método.
- Finalmente, guarde el archivo de Excel de destino usando IWorkbook->Save (intrusive\ptrAspose::Cells::Systems::String nombre de archivo) método.
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.
- Cargue el archivo de Excel usando la clase IWorkbook.
- Recupere la colección de hojas de trabajo usando el método IWorkbook->GetIWorksheets().
- Recupere la hoja de trabajo que desea mover usando el método IWorksheetCollection->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Mueva la hoja de trabajo a la ubicación deseada usando el método IWorksheet->MoveTo (Aspose::Cells::Systems::Int32 index).
- Finalmente, guarde el archivo de Excel usando IWorkbook->Save (intrusive\ptrAspose::Cells::Systems::String nombre de archivo) método.
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.