Cum să lucrați cu XLSX Packaging în C++

Cum să lucrați cu XLSX Packaging în C++

Aspose.Cells FOSS for C++ reads and writes Excel files in the .xlsx Deschide formatul XML. XlsxWorkbookSerializer clasa orchestrează încărcarea și salvarea tuturor părților din carte de lucru. Acest ghid explică cum să utilizați API-ul pentru încălcare/salvare și ce gestionează automat stratul de ambalare.

Ghid pas cu pas

Pasul 1: Construirea

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)

Pasul 2: Includeţi şi titlurile de pe pagină.

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

using namespace Aspose::Cells_FOSS;

Pasul 3: Încărcarea unui fișier XLSX existent

În ceea ce priveşte Workbook(filePath) apeluri de constructor XlsxWorkbookSerializer::Load în mod intern pentru a despacheta toate părțile Open XML:

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

Pasul 4: Modificați cartea de lucru

Faceți orice modificări ale celulei, stilului sau structurii folosind API-ul standard:

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

Pasul 5: Salvaţi cartea de lucru

Sună-mă. Workbook::Save(fileName) pentru a ambala toate părțile Open XML înapoi într-o arhivă XLSX:

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

Formatul este dedus din .xlsx extinderea. XlsxWorkbookSerializer::Save metoda se ocupă de scrierea xl/workbook.xml, xl/worksheets/sheet*.xml, xl/styles.xml, și xl/sharedStrings.xml părți automat.


Pasul 6: Înțelegeți ce gestionează stratul de ambalare

Nu este necesar să interacționați direct cu componentele interne ale ambalajului.:

Partea 1Gestionat de:
Structura cărții de lucruXlsxWorkbookProperties
Datele din fișe de lucruWorksheetXmlMapper
Stiluri și fonturiXlsxWorkbookStyles
Stringuri partajateSharedStringTableXmlMapper
Proprietăți ale documentuluiXlsxDocumentProperties
Denumirile definiteXlsxWorkbookDefinedNames

Probleme comune şi soluţii

Fişierul este salvat dar nu se deschide în Excel Asigură-te că calea fişierului de ieşire foloseşte .xlsx Salvarea cu o altă extensie poate produce un fișier necunoscut.

Stiluri pierdute după o călătorie în retur Aplicarea Cell::SetStyle(style) înainte de a suna. Workbook::Save.Stilurile modificate după salvare nu sunt scrise.

Fişier încărcat ca gol Verificați fișierul nu este protejat de parolă și este un XLSX valid (nu .xls sau de: .xlsm) Biblioteca susţine: .xlsx - Doar.

Numele definite lipsesc după salvare Utilizare: Workbook::EnsureUniqueDefinedName() înainte de a salva pentru a rezolva orice conflicte de amploare.

Memorie neîncărcată Sună-mă. workbook.Dispose() după ce a economizat pentru a elibera toate resursele interne de ambalare XLSX.

Întrebări frecvente

Pot salva în alte formate decât XLSX?

Versiunea actuală v0.1 suportă salvarea în XLSX. Încărcarea CSV este susținută, dar salvarea la CS V nu este disponibilă.

Biblioteca păstrează părţi existente pe care nu le-am modificat?

Da, serializatorul face tururi în toate părţile încărcate.

Pot să inspectez XML-ul brut al unei părţi din carte de lucru?

În ceea ce priveşte XmlDocument::SaveToUtf8() metoda serializează un document XML într-un șir. Cu toate acestea, accesul direct la părțile de arhivă XLSX nu este expus în API publică. Utilizați XmlDocument pentru procesarea XML personalizată.

Există un API de streaming pentru fişiere mari?

Nu, actuala versiune încărcă întreaga carte de lucru în memorie. Pentru fişiere foarte mari, luaţi în considerare împărţirea procesării în cărţi mai mici.

Ce se întâmplă dacă salvez acelaşi fişier pe care l-am încărcat?

Biblioteca scrie într-un nou buffer intern înainte de a suprapune fișierul pe disc, astfel încât salvarea în loc să nu corupă sursa.

Vezi și:

 Română