Lavorare con il packaging XLSX
Lavorare con il packaging XLSX
Aspose.Cells FOSS per C++ legge e scrive il formato .xlsx Open XML tramite uno strato di serializzazione dedicato. La classe XlsxWorkbookSerializer orchestra il caricamento e il salvataggio di tutte le parti della cartella di lavoro, incluse fogli di lavoro, stili, nomi definiti, proprietà del documento e filtri automatici.
Caricamento e salvataggio dei file XLSX
Utilizza la classe Workbook per tutte le operazioni di caricamento e salvataggio. Internamente, XlsxWorkbookSerializer gestisce il packaging 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;
}Proprietà del documento
I file XLSX contengono proprietà del documento di base ed estese (titolo, autore, data di creazione). Queste sono gestite da XlsxDocumentProperties, che costruisce e carica le parti docProps/core.xml e docProps/app.xml:
| Part | Gestito da | Contains |
|---|---|---|
docProps/core.xml | XlsxDocumentProperties::BuildCorePropertiesDocument | Titolo, autore, creato, modificato |
docProps/app.xml | XlsxDocumentProperties::BuildExtendedPropertiesDocument | Nome dell’applicazione, versione |
Metadati e impostazioni della cartella di lavoro
I metadati a livello di cartella di lavoro — impostazioni di calcolo, visualizzazioni della cartella e protezione della cartella di lavoro — sono gestiti da XlsxWorkbookProperties:
BuildWorkbookPropertiesElement— scrive le impostazioni di calcolo e di iterazione della cartella di lavoroBuildWorkbookProtectionElement— scrive la protezione con password a livello di cartella di lavoroBuildBookViewsElement— scrive le impostazioni della posizione della finestra e del foglio attivo
Stili e Formati Numerici
La parte degli stili (xl/styles.xml) è gestita da XlsxWorkbookStyles. Mappa gli oggetti Style dal modello in memoria ai record serializzati di font, riempimento, bordo e formato numerico:
BuildStylesheet— serializza tutti gli stili in XMLLoadStylesheet— legge gli stili da un file XLSX esistenteStylesEqual— verifica se due oggetti di stile produrrebbero identici XML
Imballaggio Auto-Filtro
Lo stato del filtro automatico per foglio di lavoro è serializzato da XlsxWorkbookAutoFilter:
BuildAutoFilterElement— scrive l’elemento<autoFilter>XMLLoadAutoFilter— legge la configurazione del filtro automatico da una parte del foglio di lavoro
Nomi Definiti
Intervalli denominati e formule sono confezionati nella parte della cartella di lavoro e caricati da XlsxWorkbookDefinedNames:
BuildDefinedNames— scrive tutte le vociDefinedNamenel XML della cartella di lavoroLoadWorkbookDefinedNames— legge i nomi definiti durante il caricamento del file
Suggerimenti e migliori pratiche
- Usa
Workbook::Save(fileName)come unico punto di uscita — non invocare direttamente le classi serializer a meno di estendere la libreria. - Il formato
.xlsxè l’unico formato pienamente supportato; il salvataggio in altri formati non è disponibile nella versione v0.1. - I percorsi file passati a
Workbook(filePath)oSave(filePath)devono utilizzare il separatore di percorso della piattaforma e essere pienamente qualificati quando si esegue in ambienti in cui la directory di lavoro può variare. - La protezione della cartella di lavoro applicata tramite
XlsxWorkbookProperties::BuildWorkbookProtectionElementè indipendente dalla protezione a livello di foglio impostata tramiteWorksheet::Protect.
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
| Il file non si carica | XLSX non valido o crittografato | Assicurati che il file sia un XLSX semplice (non protetto da password) |
| Stili persi dopo il salvataggio | Stile non applicato prima del salvataggio | Chiama Cell::SetStyle(style) prima di Workbook::Save |
| Nomi definiti mancanti dopo il round-trip | Ambito impostato sul foglio sbagliato | Usa DefinedName::SetFormula con l’indirizzo completo dell’intervallo |
API Reference Riepilogo
| Classe/Metodo | Descrizione |
|---|---|
Workbook(filePath) | Carica un file XLSX |
Workbook::Save(fileName) | Salva in XLSX |
XlsxWorkbookSerializer::Save | Interno: serializza il modello in Open XML |
XlsxWorkbookSerializer::Load | Interno: deserializza Open XML nel modello |
XlsxDocumentProperties | Imballaggio delle proprietà del documento core ed estese |
XlsxWorkbookProperties | Serializzazione dei metadati e delle impostazioni della cartella di lavoro |
XlsxWorkbookStyles | Imballaggio del foglio di stile |
XlsxWorkbookAutoFilter | Imballaggio XML con auto-filtro |
XlsxWorkbookDefinedNames | Imballaggio XML con nome definito |