Para un programador que intenta actualizar archivos XLSX dentro de la aplicación C++, La API Aspose.Total for C++ puede ayudar a automatizar el proceso de actualización. Es un paquete completo de diferentes bibliotecas de C++ que manejan múltiples formatos, incluidos documentos de Microsoft Excel. La API Aspose.Cells for C++ que forma parte del paquete Aspose.Total for C++ facilita este proceso de modificación. El proceso de actualización del documento XLSX es simple al acceder primero a la hoja y luego actualizar el valor de la celda en Excel usando C++.
Cómo actualizar el archivo XLSX en C++
- Cargue el archivo XLSX usando CreateIWorkbook
- Acceso a Worksheet relevante usando GetIWorksheets()->GetObjectByIndex(0) y celda relevante usando GetICells()->GetObjectByIndex
- Inserte nuevos datos en la celda a la que accedió usando el método PutValue
- Guarde el archivo como archivo .xlsx usando el método Guardar pasando el archivo con la ruta como parámetro
Requisitos de modificación
- Para la modificación de XLSX, siguiendo Requisitos del sistema para sistemas Windows y Linux
- Instalar desde la línea de comandos como
nuget install Aspose.Total.Cpp
- O a través de Package Manager Console de Visual Studio con
Install-Package Aspose.Total.Cpp
- Alternativamente, obtenga el instalador MSI fuera de línea o las DLL en un archivo ZIP de Descargas
Código - Actualizar archivo XLSX en C++
StringPtr dirPath = new String("..\\Data\\sourcePath\\"); | |
StringPtr outPath = new String("..\\Data\\OutputPath\\"); | |
StringPtr srcCSV = dirPath->StringAppend(new String(L"srcFile.csv")); | |
StringPtr updatedCSV = outPath->StringAppend(new String(L"outReadWriteCSV.csv")); | |
intrusive_ptr<IWorkbook> wb = Factory::CreateIWorkbook(srcCSV); | |
intrusive_ptr<IWorksheet> ws = wb->GetIWorksheets()->GetObjectByIndex(0); | |
intrusive_ptr<ICell> cell = ws->GetICells()->GetObjectByIndex(new String("A1")); | |
StringPtr strVal = cell->GetStringValue(); | |
StringPtr cellValue = new String("Cell Value: "); | |
Console::WriteLine(cellValue->StringAppend(strVal)); | |
cell = ws->GetICells()->GetObjectByIndex(new String("C4")); | |
intrusive_ptr<String> strValPtr = new String(strVal); | |
cell->PutValue(strValPtr); | |
wb->Save(updatedCSV, SaveFormat_CSV); |