Práca s balením OOXML

Práca s balením OOXML

Súbor XLSX je archív ZIP Open Packaging Convention (OPC). Aspose.Cells FOSS pre .NET odhaľuje základnú vrstvu balíka prostredníctvom: IPackageReader, IPackageWriter, a PackageModel Objektový graf. Jedná sa o nízkonúrovňové API určené na diagnostiku a nástrojovanie väčšina aplikácií používa len vysokoúrovne rozhranie, ktoré je možné použiť ako základ pre analýzu údajov. Workbook trieda.


Model balenia

PackageModel Zobrazuje logický obsah archívu XLSX. Vystihuje tri zbierky: Parts (všetky časti obsahu), Relationships (zápisy o vzťahu k OPC) a UnsupportedParts (časti súboru, ktoré knižnica nepresadzuje). 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 Priame instancizovanie nie je súčasťou štandardného pracovného postupu na vysokej úrovni.


IPakážkačítačka aIPakžekopísaná

IPackageReader definuje jednotnú Read() metóda pre čítanie balenia OPC. IPackageWriter definuje jednotnú Write() Tieto rozhrania sú implementované vnútorným čitateľom/písomcom založeným na ZIP knižnici a môžu byť dodávané prostredníctvom vlastných realizácií pre scenáre ukladania v pamäti alebo cloudovom úložisku.

// Signature reference — not a complete runnable example
// public interface IPackageReader { void Read(...); }
// public interface IPackageWriter { void Write(...); }

PackageStructureException

PackageStructureException je vyhodený, keď štruktúra balíka XLSX je v podstate neplatná napríklad, ak chýbajú požadované vzťahy OPC. Rozširuje všeobecnú hierarchiu výnimiek a obsahuje správu popisujúcu, ktorá štrukturálna invariant bola porušená.

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 najlepšie postupy

  • Použitie: PackageModel.UnsupportedParts na odhalenie neštandardných častí, ktoré môžu byť ticho upustené pri cestovaní v doprave.
  • Zlovák: PackageStructureException Okrem: WorkbookLoadException pri načítaní súborov z nedôveryhodných zdrojov.
  • Úrad pre bezpečnosť a ochranu zdravia IPackageReader/IPackageWriter rozhranie sú rozšírením; implementovať ich len vtedy, keď potrebujete vlastný ukladanie (napr. načítanie z cloudu blob bez lokálneho súboru).
  • Pre väčšinu diagnostiky, LoadDiagnostics (dostupný prostredníctvom: Workbook.LoadDiagnosticszriedka je potrebné spustiť do obalovej vrstvy.

Spoločné problémy

VýstavaPríčina:Oprava
PackageStructureException na zaťaženieChýba povinný vzťah k OPCSadzba TryRepairPackage = true v: LoadOptions; kontrola LoadDiagnostics.Issues po nakladaní
UnsupportedParts nie prázdnySúbor obsahuje neštandardné rozšírenia .Tieto časti sú doslova uchované na výlučne v prípade, že boli prítomné pri zaťažení.
Zmluvné strany IPackageReader nie je naň vzývanýPrepustený nesprávnemu konštruktorovi preťaženia.Zabezpečiť, aby sa v rámci LoadOptions alebo je použitý konštruktor preťaženie akceptovať vlastný čítač

FAQ

Musím používať IPackageReader/IPacksageWriter na bežnú prácu s tabuľkami?

Nie, tieto rozhrania sú rozšírenými bodmi pre pokročilé scenáre. Workbook priamo.

Sú nepodporované časti uchovávané na ukladaní?

Časti uvedené v: PackageModel.UnsupportedParts Ak sa vyžaduje trvanie v ceste a späť pre neštandardné časti, použijte postup následného spracovania na úrovni zip.

Aký je rozdiel medzi PackageStructureException a WorkbookLoadExcept?

PackageStructureException označuje zlyhanie na úrovni OPC/ZIP (chýba typ obsahu, prerušený vzťah). WorkbookLoadException označuje parzu alebo sémantický zlyh v obsahu XLSX vyššej úrovne.


Zhrnutie referenčného API

Trieda / rozhranieOpis:
IPackageReaderRozhraník na čítanie balíka OPC (Read metóda)
IPackageWriterRozhraník na písanie balíka OPC (Write metóda)
PackageLoadContextZväzky a Workbook na jeho PackageModel
PackageLoadContext.PackageVráti sa: PackageModel
PackageModel.PartsVšetky časti obsahu v balení
PackageModel.RelationshipsZáznamy o vzťahu k OPC
PackageModel.UnsupportedPartsČasti, ktoré knižnica neupravuje
PackagePartDescriptor.PartUriURI OPC pre časť
PackagePartDescriptor.ContentTypeTyp obsahu MIME časti
PackagePartDescriptor.CategoryLogická kategória (účelový hárok, štýly atď.)
PackageStructureExceptionVyriešené na základe štrukturálnych porušení OPC
 Slovenčina