Copiar filas y columnas es una tarea común que se realiza al trabajar con archivos de Excel. Puede haber situaciones en las que necesite copiar filas o columnas en archivos de Excel mediante programación. Para tales casos, este artículo le enseñará cómo copiar filas y columnas en archivos de Excel usando C++.

API de C++ para copiar filas y columnas en archivos de Excel

Aspose.Cells for C++ es una biblioteca nativa de C++ que le permite crear, leer y modificar archivos de Excel sin necesidad de instalar Microsoft Excel. La API también brinda la capacidad de copiar filas y columnas en archivos 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 una sola fila en un archivo de Excel usando C++

La siguiente es la imagen del archivo fuente de Excel que usaremos en los siguientes ejemplos.

Hoja de trabajo de origen

Los siguientes son los pasos para copiar una sola fila en un archivo de Excel usando C++.

El siguiente código de ejemplo muestra cómo copiar una fila en un archivo de Excel usando C++.

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

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

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

// Obtener la primera hoja de trabajo
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Copiar fila
worksheet->GetICells()->CopyIRow(worksheet->GetICells(), 1, 15);

// Guarde el archivo de Excel
workbook->Save(outDir->StringAppend(new String("CopyRow_out.xlsx")));
Imagen que muestra la fila copiada

Imagen que muestra la fila copiada

Copiar varias filas en un archivo de Excel usando C++

Para copiar varias filas, utilizaremos el método CopyIRows que acepta un parámetro adicional que indica el número total de filas que se copiarán. Para copiar varias filas, siga los pasos que se indican a continuación.

El siguiente código de ejemplo muestra cómo copiar varias filas en un archivo de Excel usando C++.

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

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

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

// Obtener la primera hoja de trabajo
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Copiar filas
worksheet->GetICells()->CopyIRows(worksheet->GetICells(), 1, 15, 3);

// Guarde el archivo de Excel
workbook->Save(outDir->StringAppend(new String("CopyRows_out.xlsx")));
Imagen que muestra las filas copiadas

Imagen que muestra las filas copiadas

Copie una sola columna en un archivo de Excel usando C++

Los siguientes son los pasos para copiar una sola columna en un archivo de Excel usando C++.

El siguiente código de ejemplo muestra cómo copiar una sola columna en un archivo de Excel usando C++.

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

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

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

// Obtener la primera hoja de trabajo
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Copiar columna
worksheet->GetICells()->CopyIColumn(worksheet->GetICells(), 0, 6);

// Guarde el archivo de Excel
workbook->Save(outDir->StringAppend(new String("CopyColumn_out.xlsx")));
Imagen que muestra la columna copiada

Imagen que muestra la columna copiada

Copiar varias columnas en un archivo de Excel usando C++

Para copiar varias columnas, utilizaremos el método CopyIColumns que acepta un parámetro adicional que indica el número total de columnas que se copiarán. Para copiar varias columnas, siga los pasos que se indican a continuación.

El siguiente código de ejemplo muestra cómo copiar varias columnas en un archivo de Excel usando C++.

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

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

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

// Obtener la primera hoja de trabajo
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Copiar columnas
worksheet->GetICells()->CopyIColumns(worksheet->GetICells(), 0, 6, 3);

// Guarde el archivo de Excel
workbook->Save(outDir->StringAppend(new String("CopyColumns_out.xlsx")));
Imagen que muestra las columnas copiadas

Imagen que muestra las columnas copiadas

Obtenga una licencia gratis

Para probar la API sin limitaciones de evaluación, puede solicitar una licencia temporal gratuita.

Conclusión

En este artículo, ha aprendido a copiar filas y columnas en un archivo de Excel usando C++. Los ejemplos de código compartido muestran cómo copiar filas y columnas únicas y múltiples en un archivo de Excel. Usamos la API Aspose.Cells for C++ para lograr esto. Es una API robusta que proporciona muchas funciones adicionales para trabajar con archivos de Excel. Puede explorar la API en detalle visitando la documentación oficial. Si tiene alguna consulta, no dude en comunicarse con nosotros en nuestro foro de soporte gratuito.

Ver también