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:: PackageModel Pří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.UnsupportedParts objevit nestandardní díly, které mohou být tiše upadnuty při cestě zpět.
  • Rybíček PackageStructureException Kromě: WorkbookLoadException při načtení souborů z nedůvěryhodných zdrojů.
  • Úřad pro bezpečnost a ochranu zdraví IPackageReader/IPackageWriter rozhraní 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ákladuNevyhovující vztah k OPCSestavení: 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ánPř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:
IPackageReaderRozhraní pro čtení balíku OPC (Read metody)
IPackageWriterRozhraní pro psaní balíku OPC (Write metody)
PackageLoadContextZávazky a Workbook na jeho PackageModel
PackageLoadContext.PackageVrátí se: PackageModel
PackageModel.PartsVšechny části obsahu v balení
PackageModel.RelationshipsÚdaje o vztazích s OPC
PackageModel.UnsupportedPartsČásti, které knihovna nezpracovala
PackagePartDescriptor.PartUriURI OPC pro část
PackagePartDescriptor.ContentTypeTyp obsahu MIME části
PackagePartDescriptor.CategoryLogická kategorie (účelový list, styly atd.)
PackageStructureExceptionVyloučeno na strukturální porušení OPC
 Čeština