Praca z pakowaniem XLSX
Praca z pakowaniem XLSX
Aspose.Cells FOSS dla C++ odczytuje i zapisuje format .xlsx Open XML przy użyciu dedykowanej warstwy serializacji. Klasa XlsxWorkbookSerializer koordynuje ładowanie i zapisywanie wszystkich części skoroszytu, w tym arkuszy, stylów, zdefiniowanych nazw, właściwości dokumentu i automatycznych filtrów.
Ładowanie i zapisywanie plików XLSX
Użyj klasy Workbook do wszystkich operacji ładowania i zapisywania. Wewnątrz, XlsxWorkbookSerializer obsługuje pakowanie 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;
}Właściwości dokumentu
Pliki XLSX zawierają podstawowe i rozszerzone właściwości dokumentu (tytuł, autor, data utworzenia). Są one zarządzane przez XlsxDocumentProperties, który buduje i ładuje części docProps/core.xml oraz docProps/app.xml:
| Part | Zarządzane przez | Contains |
|---|---|---|
docProps/core.xml | XlsxDocumentProperties::BuildCorePropertiesDocument | Tytuł, autor, utworzono, zmodyfikowano |
docProps/app.xml | XlsxDocumentProperties::BuildExtendedPropertiesDocument | Nazwa aplikacji, wersja |
Metadane i ustawienia skoroszytu
Metadane na poziomie skoroszytu — ustawienia obliczeń, widoki skoroszytu i ochrona skoroszytu — są zarządzane przez XlsxWorkbookProperties:
BuildWorkbookPropertiesElement— zapisuje ustawienia obliczeń i iteracji skoroszytuBuildWorkbookProtectionElement— zapisuje ochronę hasłem na poziomie skoroszytuBuildBookViewsElement— zapisuje pozycję okna i ustawienia aktywnego arkusza
Style i formaty liczb
Część stylów (xl/styles.xml) jest zarządzana przez XlsxWorkbookStyles. Mapuje ona obiekty Style z modelu w pamięci na zserializowane rekordy czcionek, wypełnień, obramowań i formatów liczb:
BuildStylesheet— serializuje wszystkie style do XMLLoadStylesheet— odczytuje style z istniejącego pliku XLSXStylesEqual— sprawdza, czy dwa obiekty stylu wygenerują identyczny XML
Pakowanie Auto-Filter
Stan auto-filtra dla każdego arkusza jest serializowany przez XlsxWorkbookAutoFilter:
BuildAutoFilterElement— zapisuje element<autoFilter>XMLLoadAutoFilter— odczytuje konfigurację auto-filtra z części arkusza
Nazwy zdefiniowane
Zakresy nazwane i formuły są pakowane w części skoroszytu i ładowane przez XlsxWorkbookDefinedNames:
BuildDefinedNames— zapisuje wszystkie wpisyDefinedNamedo XML skoroszytuLoadWorkbookDefinedNames— odczytuje zdefiniowane nazwy podczas ładowania pliku
Wskazówki i najlepsze praktyki
- Używaj
Workbook::Save(fileName)jako jedynego punktu wyjścia — nie wywołuj klas serializatora bezpośrednio, chyba że rozszerzasz bibliotekę. - Format
.xlsxjest jedynym w pełni obsługiwanym formatem; zapisywanie do innych formatów nie jest dostępne w wersji v0.1. - Ścieżki plików przekazywane do
Workbook(filePath)lubSave(filePath)muszą używać separatora ścieżek platformy i być w pełni kwalifikowane, gdy uruchamiane w środowiskach, w których katalog roboczy może się zmieniać. - Ochrona skoroszytu zastosowana za pomocą
XlsxWorkbookProperties::BuildWorkbookProtectionElementjest niezależna od ochrony na poziomie arkusza ustawionej przezWorksheet::Protect.
Typowe problemy
| Problem | Przyczyna | Naprawa |
|---|---|---|
| Nie udało się załadować pliku | Nieprawidłowy lub zaszyfrowany plik XLSX | Upewnij się, że plik jest zwykłym (niezabezpieczonym hasłem) plikiem XLSX |
| Style utracone po zapisaniu | Styl nie zastosowany przed zapisem | Wywołaj Cell::SetStyle(style) przed Workbook::Save |
| Zdefiniowane nazwy brakują po cyklu | Zakres ustawiony na niewłaściwy arkusz | Użyj DefinedName::SetFormula z pełnym adresem zakresu |
API Reference Podsumowanie
| Klasa/Metoda | Opis |
|---|---|
Workbook(filePath) | Wczytaj plik XLSX |
Workbook::Save(fileName) | Zapisz do XLSX |
XlsxWorkbookSerializer::Save | Wewnętrzne: serializuje model do Open XML |
XlsxWorkbookSerializer::Load | Wewnętrzne: deserializuje Open XML do modelu |
XlsxDocumentProperties | Pakowanie podstawowych i rozszerzonych właściwości dokumentu |
XlsxWorkbookProperties | Serializacja metadanych i ustawień skoroszytu |
XlsxWorkbookStyles | Pakowanie arkusza stylów |
XlsxWorkbookAutoFilter | Pakowanie automatycznego filtra XML |
XlsxWorkbookDefinedNames | Pakowanie zdefiniowanej nazwy XML |