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::
PackageModelPriame 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.UnsupportedPartsna odhalenie neštandardných častí, ktoré môžu byť ticho upustené pri cestovaní v doprave. - Zlovák:
PackageStructureExceptionOkrem:WorkbookLoadExceptionpri načítaní súborov z nedôveryhodných zdrojov. - Úrad pre bezpečnosť a ochranu zdravia
IPackageReader/IPackageWriterrozhranie 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ýstava | Príčina: | Oprava |
|---|---|---|
PackageStructureException na zaťaženie | Chýba povinný vzťah k OPC | Sadzba TryRepairPackage = true v: LoadOptions; kontrola LoadDiagnostics.Issues po nakladaní |
UnsupportedParts nie prázdny | Sú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 / rozhranie | Opis: |
|---|---|
IPackageReader | Rozhraník na čítanie balíka OPC (Read metóda) |
IPackageWriter | Rozhraník na písanie balíka OPC (Write metóda) |
PackageLoadContext | Zväzky a Workbook na jeho PackageModel |
PackageLoadContext.Package | Vráti sa: PackageModel |
PackageModel.Parts | Všetky časti obsahu v balení |
PackageModel.Relationships | Záznamy o vzťahu k OPC |
PackageModel.UnsupportedParts | Časti, ktoré knižnica neupravuje |
PackagePartDescriptor.PartUri | URI OPC pre časť |
PackagePartDescriptor.ContentType | Typ obsahu MIME časti |
PackagePartDescriptor.Category | Logická kategória (účelový hárok, štýly atď.) |
PackageStructureException | Vyriešené na základe štrukturálnych porušení OPC |