Werken met XLSX-verpakking
Werken met XLSX-verpakking
Aspose.Cells FOSS voor C++ leest en schrijft het .xlsx Open XML-formaat via een dedicated serialisatielaag. De XlsxWorkbookSerializer-klasse coördineert het laden en opslaan van alle werkmaponderdelen, inclusief werkbladen, stijlen, gedefinieerde namen, documenteigenschappen en autofilters.
Laden en opslaan van XLSX-bestanden
Gebruik de Workbook-klasse voor alle laad- en opslagbewerkingen. Intern verwerkt XlsxWorkbookSerializer de Open XML-verpakking:
#include "aspose/cells_foss/Workbook.h"
using namespace Aspose::Cells_FOSS;
int main() {
// Load existing XLSX
Workbook workbook("input.xlsx");
// Modify content...
// Save back to XLSX
workbook.Save("output.xlsx");
return 0;
}Documenteigenschappen
XLSX-bestanden bevatten kern- en uitgebreide documenteigenschappen (titel, auteur, aanmaakdatum). Deze worden beheerd door XlsxDocumentProperties, die de docProps/core.xml- en docProps/app.xml-onderdelen bouwt en laadt:
| Part | Beheerd door | Contains |
|---|---|---|
docProps/core.xml | XlsxDocumentProperties::BuildCorePropertiesDocument | Titel, auteur, aangemaakt, gewijzigd |
docProps/app.xml | XlsxDocumentProperties::BuildExtendedPropertiesDocument | Applicatienaam, versie |
Werkmap-metadata en -instellingen
Werkboekmetadata op werkboekniveau — berekeningsinstellingen, weergaven van het boek en werkboekbeveiliging — wordt beheerd door XlsxWorkbookProperties:
BuildWorkbookPropertiesElement— schrijft werkboekberekenings- en iteratie-instellingenBuildWorkbookProtectionElement— schrijft wachtwoordbeveiliging op werkboekniveauBuildBookViewsElement— schrijft vensterpositie- en actieve bladinstellingen
Stijlen en getalnotaties
Het stijlgedeelte (xl/styles.xml) wordt beheerd door XlsxWorkbookStyles. Het zet Style objecten uit het in-memory-model om naar geserialiseerde lettertype-, opvul-, rand- en getalnotatie-records:
BuildStylesheet— serialiseert alle stijlen naar XMLLoadStylesheet— leest stijlen uit een bestaand XLSX-bestandStylesEqual— controleert of twee stijlobjecten identieke XML zouden opleveren
Auto-filterverpakking
De auto-filterstatus per werkblad wordt geserialiseerd door XlsxWorkbookAutoFilter:
BuildAutoFilterElement— schrijft het<autoFilter>XML elementLoadAutoFilter— leest de auto-filterconfiguratie uit een werkbladonderdeel
Gedefinieerde namen
Benoemde bereiken en formules worden verpakt in het werkboekonderdeel en geladen door XlsxWorkbookDefinedNames:
BuildDefinedNames— schrijft alleDefinedNamevermeldingen naar het werkboek XMLLoadWorkbookDefinedNames— leest gedefinieerde namen tijdens het laden van het bestand
Tips en best practices
- Gebruik
Workbook::Save(fileName)als het enige exitpunt — roep serializerklassen niet direct aan, tenzij je de bibliotheek uitbreidt. - Het
.xlsx-formaat is het enige volledig ondersteunde formaat; opslaan naar andere formaten is niet beschikbaar in v0.1. - Bestandspaden die aan
Workbook(filePath)ofSave(filePath)worden doorgegeven, moeten de platform-padseparator gebruiken en volledig gekwalificeerd zijn wanneer ze worden uitgevoerd in omgevingen waarin de werkmap kan variëren. - Werkboekbeveiliging toegepast via
XlsxWorkbookProperties::BuildWorkbookProtectionElementstaat los van de werkbladniveau-beveiliging die is ingesteld viaWorksheet::Protect.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
| Bestand kan niet worden geladen | Ongeldig of versleuteld XLSX | Zorg ervoor dat het bestand een gewone (niet met wachtwoord beveiligde) XLSX is |
| Stijlen verloren na opslaan | Stijl niet toegepast vóór opslaan | Roep Cell::SetStyle(style) aan vóór Workbook::Save |
| Gedefinieerde namen ontbreken na round-trip | Scope ingesteld op verkeerd blad | Gebruik DefinedName::SetFormula met volledig bereikadres |
API Reference Samenvatting
| Klasse/Methode | Beschrijving |
|---|---|
Workbook(filePath) | Laad een XLSX-bestand |
Workbook::Save(fileName) | Opslaan naar XLSX |
XlsxWorkbookSerializer::Save | Intern: serialiseert model naar Open XML |
XlsxWorkbookSerializer::Load | Intern: deserialiseert Open XML naar model |
XlsxDocumentProperties | Kern- en uitgebreide documenteigenschapverpakking |
XlsxWorkbookProperties | Werkboekmetadata en instellingenserialisatie |
XlsxWorkbookStyles | Style sheet-verpakking |
XlsxWorkbookAutoFilter | Auto-filter XML verpakking |
XlsxWorkbookDefinedNames | Gedefinieerde naam XML verpakking |