Microsoft Excel permite dividir el texto en varias columnas utilizando separadores como espacios en blanco, comas u otros caracteres. Esta función puede ser útil en situaciones como la conversión de datos separados por comas exportados desde una tabla de base de datos a formato tabular. Con ese fin, este artículo le enseñará cómo dividir texto en columnas en archivos de Excel usando C++.
- API de C++ para dividir texto en columnas en archivos de Excel
- Dividir texto en columnas en archivos de Excel usando C++
API de C++ para dividir texto en columnas en archivos de Excel
Usaremos la API Aspose.Cells for C++ para dividir el texto en columnas en archivos de Excel. Es una biblioteca nativa de C++ que le permite crear, leer y modificar archivos de Excel sin necesidad de instalar Microsoft Excel. Puede instalar la API a través de NuGet o descargarla directamente desde la sección Descargas.
PM> Install-Package Aspose.Cells.Cpp
Dividir texto en columnas en archivos de Excel usando C++
Los siguientes son los pasos para dividir texto en columnas en archivos de Excel.
- Cree una instancia de la clase IWorkbook.
- Acceda a la hoja de trabajo donde desea dividir el texto usando el método IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Inserte datos de muestra en la hoja de trabajo.
- Cree una instancia de la clase ITxtLoadOptions.
- Especifique el carácter que se usará para dividir el texto usando el método ITxtLoadOptions->SetSeparator(Aspose::Cells::Systems::Char value).
- Divida el texto en columnas usando IWorksheet->GetICells()->TextToColumns(Aspose::Cells::Systems::Int32 row, Aspose::Cells::Systems::Int32 column, Aspose::Cells::Systems: :Int32 totalRows, intrusivo\ptrAspose::Cells::ITxtLoadOptions opciones) método.
- Guarde el archivo de Excel usando IWorkbook->Save (intrusive\ptrAspose::Cells::Systems::String nombre de archivo) método.
El siguiente código de ejemplo demuestra cómo dividir texto en columnas en archivos de Excel usando C++.
// Ruta del directorio de origen.
StringPtr srcDir = new String("SourceDirectory\\");
// Ruta del directorio de salida.
StringPtr outDir = new String("OutputDirectory\\");
// Ruta del archivo de salida de Excel
StringPtr outputFile = outDir->StringAppend(new String("TextToColumns.xlsx"));
// Crear una instancia de la clase IWorkbook
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Accede a la primera hoja de trabajo
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Agregar datos de muestra
intrusive_ptr<String> str = new String("John Teal");
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue(str);
str = new String("Peter Graham");
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(str);
str = new String("Brady Cortez");
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(str);
str = new String("Mack Nick");
worksheet->GetICells()->GetObjectByIndex(new String("A4"))->PutValue(str);
str = new String("Hsu Lee");
worksheet->GetICells()->GetObjectByIndex(new String("A5"))->PutValue(str);
// Crear una instancia de la clase ITxtLoadOptions
intrusive_ptr<ITxtLoadOptions> options = Factory::CreateITxtLoadOptions();
// Especificar el separador para separar el texto
options->SetSeparator(' ');
// Dividir texto en columnas
worksheet->GetICells()->TextToColumns(0, 0, 5, options);
// Guarde el archivo de Excel de salida
workbook->Save(outputFile);
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 dividir texto en varias columnas en archivos de Excel usando C++. Ha visto el fragmento de código completo junto con los pasos necesarios para lograrlo. Aspose.Cells for C++ es una API robusta que proporciona muchas características adicionales para automatizar sus tareas relacionadas con Excel. Puede explorar la API en detalle visitando la documentación oficial. Si tiene alguna pregunta, no dude en comunicarse con nosotros en nuestro foro de soporte gratuito.