Excel es un formato popular para compartir información. Es posible que se encuentre en situaciones en las que tenga datos en un archivo de Excel (XLS o XLSX) que necesite importar a una base de datos. Para ello, deberá convertir el archivo de Excel al formato CSV. Por otro lado, puede tener datos en formato CSV exportados desde una base de datos que necesita manipular más en un archivo de Excel. Para tales casos, deberá convertir el archivo CSV a formato Excel. En este artículo, aprenderá cómo realizar estas dos conversiones mediante programación usando C++.
- API de C++ para convertir archivos de Excel a CSV y archivos CSV a formato de Excel
- Convertir archivos de Excel a formato CSV usando C++
- Convierta hojas de cálculo de Excel en archivos CSV
- Convertir archivos CSV a formato Excel usando C++
- Obtenga una licencia gratis
API de C++ para convertir archivos de Excel a CSV y archivos CSV a formato de Excel
Aspose.Cells for C++ es una biblioteca nativa de C++ que le permite crear, leer y modificar archivos de Excel. Además, la API admite la conversión de archivos de Excel a formato CSV y viceversa. Puede instalar la API a través de NuGet o descargarla directamente desde la sección Descargas.
PM> Install-Package Aspose.Cells.Cpp
Convertir archivos de Excel a formato CSV usando C++
Convertir archivos de Excel a formato CSV es muy sencillo con Aspose.Cells for C++. Los siguientes son los pasos para convertir archivos de Excel a formato CSV usando C++.
- Cargue el archivo de Excel usando la clase IWorkbook.
- Guarde el archivo como CSV usando IWorkbook->Save (intrusive\ptrAspose::Cells::Systems::String fileName, Aspose::Cells::SaveFormat saveFormat) método.
El siguiente es el código de muestra para convertir archivos de Excel a formato CSV.
// 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 de entrada
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// Guardar archivo CSV de salida
workbook->Save(outDir->StringAppend(new String("Sample1_out.csv")), SaveFormat_CSV);
Convierta hojas de cálculo de Excel en archivos CSV
El ejemplo anterior convierte solo la primera hoja de cálculo si el archivo de Excel contiene varias hojas de cálculo. En caso de que desee convertir varias hojas de trabajo al formato CSV, puede seguir los siguientes pasos.
- Cargue el archivo de Excel usando la clase IWorkbook.
- Recupere las hojas de trabajo usando el método IWorkbook->GetIWorksheets().
- Recorra las hojas de trabajo recuperadas.
- Dentro del bucle, puede especificar su lógica personalizada para convertir hojas de trabajo específicas en archivos CSV. En esta demostración, todas las hojas de trabajo se convierten en archivos CSV.
- Recupere la hoja de cálculo que se va a convertir mediante el método IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Cree una instancia de la clase IWorkbook para representar un nuevo archivo CSV.
- Copie la hoja de trabajo previamente recuperada a la nueva instancia de wokrbook usando IWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy (intrusive\ptrAspose::Cells::IWorksheet sourceSheet) método.
- Guarde el nuevo Workbook como CSV usando IWorkbook->Save (intrusive\ptrAspose::Cells::Systems::String fileName, Aspose::Cells::SaveFormat saveFormat) método.
El siguiente es el código de muestra para convertir hojas de cálculo de Excel en archivos CSV 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")));
// Recupere las hojas de trabajo del Workbook.
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();
// Cree un objeto generador de cadenas para concatenaciones de cadenas.
intrusive_ptr<Aspose::Cells::Systems::Text::StringBuilder> stringBuilder = new Aspose::Cells::Systems::Text::StringBuilder();
for (int sheet = 0; sheet < sheets->GetCount(); sheet++)
{
// Recuperar la hoja de trabajo para copiar
intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(sheet);
// Cree una instancia de la clase IWorkbook para representar el nuevo Workbook
intrusive_ptr<IWorkbook> newWorkbook = Factory::CreateIWorkbook();
// Copie la hoja de trabajo previamente recuperada al nuevo Workbook
newWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);
// Borre el generador de cadenas y cree una ruta de salida con concatenaciones de cadenas.
stringBuilder->Clear();
stringBuilder->Append(outDir);
stringBuilder->Append((StringPtr)new String("Sample1_sheet_"));
stringBuilder->Append(sheet);
stringBuilder->Append((StringPtr)new String("_out.csv"));
// Guardar archivo CSV de salida
newWorkbook->Save(stringBuilder->ToString(), SaveFormat_CSV);
}
Convertir archivos CSV a formato Excel usando C++
Los siguientes son los pasos para convertir archivos CSV a formato Excel usando C++.
- Cree una instancia de la clase ILoadOptions.
- Cree un objeto de la clase IWorkbook utilizando la instancia ILoadOptions creada anteriormente.
- Guarde el archivo en formato Excel usando IWorkbook->Save (intrusive\ptrAspose::Cells::Systems::String fileName, Aspose::Cells::SaveFormat saveFormat) método.
El siguiente es el código de muestra para convertir archivos CSV a formato Excel usando C++.
// Ruta del directorio de origen.
StringPtr srcDir = new String("SourceDirectory\\");
// Ruta del directorio de salida.
StringPtr outDir = new String("OutputDirectory\\");
// Crear objeto CSV LoadOptions
intrusive_ptr<ILoadOptions> loadOptions = Factory::CreateILoadOptions(LoadFormat_CSV);
// Cargue el archivo de Excel de entrada
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.csv")), loadOptions);
// Guardar archivo CSV de salida
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")), SaveFormat_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, aprendió cómo convertir archivos de Excel a formato CSV y archivos CSV a formato Excel (XLS/XLSX) usando C++. Aspose.Cells for C++ es una gran API que proporciona muchas funciones adicionales para trabajar con archivos de Excel. Puede explorar la API en detalle utilizando la documentación oficial. Si tiene alguna pregunta, no dude en comunicarse con nosotros en nuestro foro de soporte gratuito.