Arbejde med OOXML Packaging

Arbejde med OOXML Packaging

Arbejde med OOXML Packaging

En XLSX-fil er et ZIP-arkiv af Open Packaging Convention (OPC). Aspose.Cells FOSS for .NET udsætter det underliggende pakkeslag gennem IPackageReader, IPackageWriter, og den PackageModel Objektgraf. Dette er API’er på lavt niveau, der er beregnet til diagnostik og værktøjsskabelse de fleste applikationer bruger kun det højtstående niveau af interfaces i et program. Workbook - Det er en klasse.


Pakkemodel

PackageModel repræsenterer det logiske indhold i et XLSX-arkiv. Det udstiller tre samlinger: Parts (alle indholdsdele), Relationships (optagelser i forbindelse med OPC) og UnsupportedParts (dele, der er til stede i filen og som biblioteket ikke behandler). Hver del beskrives af en PackagePartDescriptor med: PartUri, ContentType, og 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);

Bemærkning:: PackageModel er indbygget internt, når en XLSX-fil bliver lastet. Direkte instansiering er ikke en del af den standardiserede arbejdsproces på højt niveau.


IPackageReader og IPackewriter

IPackageReader definerer en enkelt Read() metode til aflæsning af en OPC-pakke. IPackageWriter definerer en enkelt Write() Disse grænseflader implementeres af bibliotekets interne ZIP-baserede læser/skriver og kan leveres ved brugerdefinerede implementeringer til in-memory eller cloud-opbevaringsscenarier.

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

PackageStructureException

PackageStructureException er kastet, når XLSX-pakkestrukturen i det væsentlige er ugyldig f.eks., når der mangler nødvendige OPC-relationer. Det udvider den generelle undtagelseshierarki og bærer en meddelelse om hvilken strukturel invariant der blev overtrådt.

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);
}

Tips og bedste praksis

  • Anvendelse: PackageModel.UnsupportedParts at opdage ikke-standarddele, der kan blive smidt ned i ro på returrejse.
  • Fanger PackageStructureException Ud over: WorkbookLoadException ved indlæse af filer fra ikke-tillidsorgsmidler.
  • Den Europæiske Union IPackageReader/IPackageWriter Interfacer er udvidelsespunkter; implementer dem kun, når du har brug for tilpasset lagring (f.eks. indlæse fra en cloudblob uden lokal fil).
  • For de fleste diagnoser, LoadDiagnostics (tilgængelig via: Workbook.LoadDiagnostics) er tilstrækkeligt det sjældent er nødvendigt at trække den ned i pakningslaget.

Almindelige problemer

Udgave:Årsagen til detteForklaret
PackageStructureException på lastFraværende OPC-forholdIndstilling TryRepairPackage = true i den LoadOptions; tjekke LoadDiagnostics.Issues efter lastning
UnsupportedParts ikke tomtFilen indeholder ikke-standard udvidelserDisse dele er bevaret bogstaveligt talt på save, hvis de var til stede under belastning.
Toldpenge IPackageReader ikke påberåbtOverført til forkert konstruktor overbelastningDet er vigtigt at sikre, at de LoadOptions eller konstruktor overbelastning accepterer den brugerdefinerede læser anvendes

FAQ

Skal jeg bruge IPackageReader/IPactWriter til almindeligt regnearkarbejde?

Nej, disse grænseflader er udvidelsespunkter til avancerede scenarier. Alle standardlæs-/skrivoperationer gennemføres af en computer med et program for at få adgang til alle programmerne i den pågældende enhed. Workbook direkte.

Er de ikke-understøttede dele bevaret på save?

Dele, der er opført i: PackageModel.UnsupportedParts Hvis der kræves retur- og returfastsættelse for ikkestandarddele, skal der anvendes et postbearbejdningsskritt på zip-niveau.

Hvad er forskellen mellem PackageStructureException og WorkbookLoadExcept?

PackageStructureException angiver en fejl på OPC/ZIP-niveau (manglende indholdstype, brudt forhold). WorkbookLoadException angiver et parserings- eller semantisk fejl på højere niveau i XLSX-indholdet.


API-referenceoversigt

Klasse / grænsefladerBeskrivelse:
IPackageReaderGrænseflade til læsning af en OPC-pakke (Read metode)
IPackageWriterGrænseflade til at skrive en OPC-pakke (Write metode)
PackageLoadContextBindes a Workbook til sin PackageModel
PackageLoadContext.PackageReturnerer den PackageModel
PackageModel.PartsAlle indholdsdele i pakken
PackageModel.RelationshipsOPC-relationer
PackageModel.UnsupportedPartsDele, der ikke er behandlet af biblioteket
PackagePartDescriptor.PartUriOPC-URI for den pågældende del
PackagePartDescriptor.ContentTypeDelens MIME-indholdstype
PackagePartDescriptor.CategoryLogisk kategori (arbejdsark, stilarter osv.)
PackageStructureExceptionAnsvarlig for strukturovertrædelser i forbindelse med OPC
 Dansk