Práce s OOXML Packagingem
Práce s OOXML Packagingem
Soubor XLSX je archiv ZIP Open Packaging Convention (OPC). Aspose.Cells FOSS pro .NET odhalí podkladovou vrstvu balení prostřednictvím: IPackageReader, IPackageWriter, a PackageModel Objektový graf. Jedná se o nízkonastové API určené pro diagnostiku a nástroje většina aplikací používá pouze rozhraní na vysoké úrovni Workbook třída.
Model balení:
PackageModel představuje logický obsah archivu XLSX. Vystavuje tři sbírky: Parts (všechny části obsahu), Relationships (zápisy o vztazích OPC) a UnsupportedParts Každá část je popsána pomocí souboru, který obsahuje všechny části. PackagePartDescriptor s: PartUri, ContentType,a) Category.
using Aspose.Cells_FOSS;
// PackageModel is accessed via PackageLoadContext during custom load flows
// The following illustrates the object structure
// var context = new PackageLoadContext(workbook, packageModel);
// var model = context.Package;
// foreach (var part in model.Parts)
// {
// Console.WriteLine($"URI={part.PartUri}, Type={part.ContentType}");
// }
// Console.WriteLine("Unsupported parts: " + model.UnsupportedParts.Count);Poznámka::
PackageModelPřímá instancizace není součástí standardního pracovního toku na vysoké úrovni.
IPaketačtenář a IPpaketapisovatel
IPackageReader definuje jednotlivé Read() metoda pro čtení balení OPC. IPackageWriter definuje jednotlivé Write() Tyto rozhraní jsou implementovány vnitřním čtenářem/psancem založeným na ZIP knihovně a mohou být dodány vlastními implementacemi pro scénáře in-memory nebo cloud storage.
// Signature reference — not a complete runnable example
// public interface IPackageReader { void Read(...); }
// public interface IPackageWriter { void Write(...); }PackageStructureException
PackageStructureException je vypuštěn, když struktura balíčku XLSX je zásadně neplatná například při chybějících požadovaných vztazích OPC. Rozšiřuje obecnou hierarchii výjimek a nese zprávu popisující porušení strukturální invarianty.
using Aspose.Cells_FOSS;
var opts = new LoadOptions { TryRepairPackage = true };
try
{
var wb = new Workbook("bad.xlsx", opts);
}
catch (PackageStructureException ex)
{
Console.WriteLine("OPC structure error: " + ex.Message);
}
catch (WorkbookLoadException ex)
{
Console.WriteLine("Load error: " + ex.Message);
}Tipy a nejlepší postupy
- Použití:
PackageModel.UnsupportedPartsobjevit nestandardní díly, které mohou být tiše upadnuty při cestě zpět. - Rybíček
PackageStructureExceptionKromě:WorkbookLoadExceptionpři načtení souborů z nedůvěryhodných zdrojů. - Úřad pro bezpečnost a ochranu zdraví
IPackageReader/IPackageWriterrozhraní jsou rozšíření; implementovat je pouze tehdy, když potřebujete vlastní úložiště (např. načtení z cloudového blobu bez místního souboru). - Pro většinu diagnostických vyšetření,
LoadDiagnostics(přístupný prostřednictvím:Workbook.LoadDiagnostics) je dostatečná zřídka je nutné ji přenést do obalové vrstvy.
Obvyklé problémy
| Výše: | Příčina: | Opravy |
|---|---|---|
PackageStructureException na nákladu | Nevyhovující vztah k OPC | Sestavení: TryRepairPackage = true v . LoadOptions; ověřit LoadDiagnostics.Issues po naložení |
UnsupportedParts ne prázdný. | Soubor obsahuje nestandardní rozšíření . | Tyto části jsou doslova uchovávány, pokud nebyly při zatížení. |
Obvyklé IPackageReader Nevyvolán | Přeneseno na špatný konstruktor přetížení | Zajištění: LoadOptions nebo konstruktor přetížení přijímající vlastní čtenář je použit |
FAQ
Musím použít IPackageReader/IPactWriter pro běžnou práci s tabulkami?
Ne. Tyto rozhraní jsou rozšíření pro pokročilé scénáře. Všechny standardní čtení/psaní operace procházejí přes Workbook přímo.
Jsou nepodporované části uchovávány na uložení?
Části uvedené v položce PackageModel.UnsupportedParts Pokud je požadována trvalecnost pro non-standardní části, použijte postup po zpracování na úrovni zip.
Jaký je rozdíl mezi PackageStructureException a WorkbookLoadExcept?
PackageStructureException označuje selhání na úrovni OPC/ZIP (chybí typ obsahu, vztah je narušen). WorkbookLoadException označuje výraznější poruchy v analýze nebo sémantické chybě ve obsahu XLSX.
Souhrnná referenční informace API
| Třída / rozhraní | Popis: |
|---|---|
IPackageReader | Rozhraní pro čtení balíku OPC (Read metody) |
IPackageWriter | Rozhraní pro psaní balíku OPC (Write metody) |
PackageLoadContext | Závazky a Workbook na jeho PackageModel |
PackageLoadContext.Package | Vrátí se: PackageModel |
PackageModel.Parts | Všechny části obsahu v balení |
PackageModel.Relationships | Údaje o vztazích s OPC |
PackageModel.UnsupportedParts | Části, které knihovna nezpracovala |
PackagePartDescriptor.PartUri | URI OPC pro část |
PackagePartDescriptor.ContentType | Typ obsahu MIME části |
PackagePartDescriptor.Category | Logická kategorie (účelový list, styly atd.) |
PackageStructureException | Vyloučeno na strukturální porušení OPC |