Práce s balíčkem XLSX
Práce s balíčkem XLSX
Aspose.Cells FOSS pro C++ čte a zapisuje formát .xlsx Open XML prostřednictvím vyhrazené vrstvy serializace. Třída XlsxWorkbookSerializer řídí načítání a ukládání všech částí sešitu, včetně listů, stylů, definovaných názvů, vlastností dokumentu a automatických filtrů.
Načítání a ukládání souborů XLSX
Použijte třídu Workbook pro všechny operace načítání a ukládání. Interně XlsxWorkbookSerializer zpracovává balíčkování Open XML:
#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;
}Vlastnosti dokumentu
Soubory XLSX obsahují základní a rozšířené vlastnosti dokumentu (název, autor, datum vytvoření). Tyto jsou spravovány pomocí XlsxDocumentProperties, který vytváří a načítá části docProps/core.xml a docProps/app.xml:
| Part | Spravováno | Contains |
|---|---|---|
docProps/core.xml | XlsxDocumentProperties::BuildCorePropertiesDocument | Název, autor, vytvořeno, upraveno |
docProps/app.xml | XlsxDocumentProperties::BuildExtendedPropertiesDocument | Název aplikace, verze |
Metadata a nastavení sešitu
Metadata na úrovni sešitu — nastavení výpočtů, zobrazení sešitu a ochrana sešitu — je spravováno XlsxWorkbookProperties:
BuildWorkbookPropertiesElement— zapisuje nastavení výpočtu a iterace sešituBuildWorkbookProtectionElement— zapisuje ochranu sešitu na úrovni heslaBuildBookViewsElement— zapisuje nastavení pozice okna a aktivního listu
Styly a formáty čísel
Část stylů (xl/styles.xml) je spravována XlsxWorkbookStyles. Mapuje objekty Style z modelu v paměti na serializované záznamy písem, výplní, okrajů a formátů čísel:
BuildStylesheet— serializuje všechny styly do XMLLoadStylesheet— načítá styly z existujícího souboru XLSXStylesEqual— kontroluje, zda dva objekty stylu vytvoří identický XML
Balení auto-filtru
Stav automatického filtru pro každý list je serializován pomocí XlsxWorkbookAutoFilter:
BuildAutoFilterElement— zapisuje prvek<autoFilter>XMLLoadAutoFilter— načítá konfiguraci automatického filtru z části listu
Definované názvy
Pojmenované oblasti a vzorce jsou zabaleny v části sešitu a načteny pomocí XlsxWorkbookDefinedNames:
BuildDefinedNames— zapisuje všechnyDefinedNamepoložky do sešitu XMLLoadWorkbookDefinedNames— čte definovaná jména během načítání souboru
Tipy a osvědčené postupy
- Použijte
Workbook::Save(fileName)jako jediný výstupní bod — nevolajte třídy serializátoru přímo, pokud nerozšiřujete knihovnu. - Formát
.xlsxje jediný plně podporovaný formát; ukládání do jiných formátů není v verzi 0.1 k dispozici. - Cesty k souborům předávané do
Workbook(filePath)neboSave(filePath)musí používat oddělovač cest platformy a být plně kvalifikované při běhu v prostředích, kde se pracovní adresář může lišit. - Ochrana sešitu aplikovaná pomocí
XlsxWorkbookProperties::BuildWorkbookProtectionElementje nezávislá na ochraně na úrovni listu nastavené přesWorksheet::Protect.
Časté problémy
| Problém | Příčina | Oprava |
|---|---|---|
| Soubor se nepodařilo načíst | Neplatný nebo šifrovaný XLSX | Ujistěte se, že soubor je prostý (nechráněný heslem) XLSX |
| Styly se po uložení ztratily | Styl nebyl aplikován před uložením | Zavolejte Cell::SetStyle(style) před Workbook::Save |
| Definované názvy chybí po round-tripu | Rozsah nastaven na nesprávný list | Použijte DefinedName::SetFormula s úplnou adresou oblasti |
API Reference Shrnutí
| Třída/Metoda | Popis: |
|---|---|
Workbook(filePath) | Načíst soubor XLSX |
Workbook::Save(fileName) | Uložit do XLSX |
XlsxWorkbookSerializer::Save | Interní: serializuje model do Open XML |
XlsxWorkbookSerializer::Load | Interní: deserializuje Open XML do modelu |
XlsxDocumentProperties | Základní a rozšířené balíčkování vlastností dokumentu |
XlsxWorkbookProperties | Serializace metadat a nastavení sešitu |
XlsxWorkbookStyles | Balíčkování stylových listů |
XlsxWorkbookAutoFilter | Balíčkování automatického filtru XML |
XlsxWorkbookDefinedNames | Definovaný název XML balení |