Com treballar amb el packaging XLSX en C++

Com treballar amb el packaging XLSX en C++

Aspose.Cells FOSS for C++ reads and writes Excel files in the .xlsx Obert format XML. Internament, el sistema de codificació és un servidor d’informació i informació que s’utilitza per a la seva configuració. XlsxWorkbookSerializer Aquesta guia explica com utilitzar l’API de càrrega/salvació i què gestiona automàticament la capa d’embalatge.

Guia de pas a pas

Pas 1: Prepara la construcció

cmake_minimum_required(VERSION 3.15)
project(XlsxPackaging CXX)
set(CMAKE_CXX_STANDARD 17)

add_subdirectory(path/to/Aspose.Cells-FOSS-for-Cpp)
add_executable(XlsxPackaging main.cpp)
target_link_libraries(XlsxPackaging PRIVATE Aspose.Cells.Foss.Cpp)

Pas 2: Inclou els encabezaments

#include "aspose/cells_foss/Workbook.h"
#include "aspose/cells_foss/Worksheet.h"
#include "aspose/cells_foss/Cell.h"

using namespace Aspose::Cells_FOSS;

Pas 3: Carregar un fitxer XLSX existent

El Workbook(filePath) crides de constructor XlsxWorkbookSerializer::Load internament per desembalar totes les parts d’Open XML:

int main() {
    Workbook workbook("input.xlsx");
    Worksheet& sheet = workbook.GetWorksheets()[0];
    std::string title = sheet.GetCells()["A1"].GetStringValue();
    return 0;
}

Pas 4: Modificar el llibre de treball

Fes qualsevol canvi en cells, estil o estructura utilitzant l’API estàndard:

sheet.GetCells()["A1"].PutValue("Updated Title");
sheet.GetCells()["B2"].PutValue(99.0);
sheet.GetCells()["C3"].SetFormula("=B2*2");

Pas 5: Salvar el llibre de treball

Call Workbook::Save(fileName) per empaquetar totes les parts Open XML en un arxiu XLSX:

workbook.Save("output.xlsx");
workbook.Dispose();

El format es dedueix del model de la .xlsx La pròrroga. XlsxWorkbookSerializer::Save El mètode gestiona l’escriptura del xl/workbook.xml, xl/worksheets/sheet*.xml, xl/styles.xml, i xl/sharedStrings.xml parts automàticament.


Pas 6: Comprendre el que gestiona la capa d’envasatge

No cal interactuar directament amb els elements interns de l’envasament.:

PartGestionat per:
Estructura del llibre de treballXlsxWorkbookProperties
Dades de la fulla d’estudisWorksheetXmlMapper
Estils i fontsXlsxWorkbookStyles
Arranxes compartidesSharedStringTableXmlMapper
Propietats del documentXlsxDocumentProperties
Noms definitsXlsxWorkbookDefinedNames

Problemes comuns i fixos

Arxiu enregistrat però no s’obre a Excel Assegurar-se que la ruta de fitxer d’ sortida utilitzi el nom del codi . .xlsx l’extensió. La conservació amb una extensió diferent pot produir un fitxer no reconegut.

Estils perduts després del viatge d’anar i venir Apply Cell::SetStyle(style) abans de trucar. Workbook::Save.Els estils modificats després de guardar no s’escriuen.

Carrega de fitxer com a buit Verifica que el fitxer no està protegit per contrasenya i és un XLSX vàlid (no .xls o de la seva .xlsm) La biblioteca dóna suport a la .xlsx Només.

Noms definits que no hi ha després de guardar Utilització: Workbook::EnsureUniqueDefinedName() abans d’estalviar per resoldre qualsevol conflicte de camp.

Memòria no alliberada Call workbook.Dispose() després d’estalviar per alliberar tots els recursos interns de embalatge XLSX.

Preguntes freqüents

Puc guardar en altres formats que no siguin XLSX?

La versió actual v0.1 només suporta l’enregistrament en XLSX. El càrrega de CSV és compatible però no està disponible el guardar a CS V.

La biblioteca conserva parts existents que no he modificat?

Sí, el serialitzador fa un viatge de tornada a totes les parts que carrega. Les dades no modificades de la fulla d’estudis, els estils i els noms definits s’preserven en guardar.

Puc inspeccionar l’XML en bruto d’una part del llibre de treball?

El XmlDocument::SaveToUtf8() El mètode serialitza un document XML a una cadena. No obstant això, l’accés directe a les parts d’arxiu XLSX no està exposat en l ‘API pública. Use XmlDocument per al processament XML personalitzat.

Hi ha una API de streaming per a fitxers grans?

No. La versió actual carrega tot el llibre de treball a la memòria. Per als arxius molt grans, considereu dividir el seu processament en llibres de feina més petits.

Què passa si em guardo sobre el mateix fitxer que he carregat?

La biblioteca escriu a un nou buffer intern abans de sobrescriure el fitxer en disc, així que l’enregistrament no corrompi la font.

See Also

 Català