OOXML Packaging-szal való munka

OOXML Packaging-szal való munka

OOXML Packaging-szal való munka

Az XLSX fájl egy nyílt csomagolási konvenció (OPC) ZIP archívum. Aspose.Cells FOSS for .NET feltárja az alapjául szolgáló csomagréteget a következők segítségével: IPackageReader, IPackageWriter, és a PackageModel Az objektumgrafikus. Ezek alacsony szintű API-k, amelyeket diagnosztikára és eszközkészítésre szántak a legtöbb alkalmazás csak magas szintű programokat használ Workbook - Az osztály.


Pakkátérkép

PackageModel Az XLSX archívum logikai tartalmát képviseli. Három gyűjteményt mutat be: Parts (minden tartalomrész), Relationships (OPC-kapcsolati bejegyzések), és UnsupportedParts A dokumentum minden egyes részét egy-egy, a könyvtár által nem feldolgozott részben leírják. PackagePartDescriptor a következők: PartUri, ContentType,és a következők: 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);

Megjegyzés:: PackageModel A közvetlen példányképzés nem része a standard magas szintű munkafolyamatnak.


IPakageReader és IPackageWriter

IPackageReader Egyetlen formátum meghatározása. Read() az OPC csomagolási módszertani módszer. IPackageWriter Egyetlen formátum meghatározása. Write() Ezeket az interfészeket a könyvtár belső ZIP-alapú olvasója/írója hajtja végre, és azokat beállíthatják sajátos implementációk által memóriában vagy felhőben tárolható forgatókönyvekhez.

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

PackageStructureException

PackageStructureException A XLSX-csomag szerkezet alapvetően érvénytelennek bizonyul, például ha hiányzik az OPC kapcsolat. Az általános kivétel hierarchiáját kiterjeszti és egy üzenetet tartalmaz arról, hogy melyik strukturális invariáns megsérült.

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

Tippek és legjobb gyakorlatok

  • Használat PackageModel.UnsupportedParts a nem szabványos alkatrészek felfedezésére, amelyeket csendben lehet dobni az út során.
  • Fogás. PackageStructureException a következők mellett: WorkbookLoadException a nem megbízható forrásokból származó fájlok betöltésekor.
  • A Bizottság IPackageReader/IPackageWriter az interfészek kiterjesztési pontok; csak akkor kell végrehajtani őket, ha egyedi tárolót igényel (pl. egy helyi fájl nélküli felhő blobból történő betöltése).
  • A legtöbb diagnosztikai vizsgálathoz, LoadDiagnostics (a hozzáférhető a WEB-en keresztül) Workbook.LoadDiagnosticsA csomagolási rétegbe való bejuttatás ritkán szükséges.

Általános kérdések

A kérdésOkokMegjavítani.
PackageStructureException terhelveSzükséges OPC-kapcsolat hiányzikÖsszeállítva TryRepairPackage = true a következőkben: LoadOptions; ellenőrzést végezni. LoadDiagnostics.Issues a rakodás után
UnsupportedParts nem üres.A fájl nem szabványos kiterjesztéseket tartalmaz.Ezek a részek szó szerint megőrződnek, kivéve ha terheléskor jelen voltak.
A vámok IPackageReader nem igényeltekA hibás konstruktor túlterhelése miatt.A Bizottság a következőket javasolja: LoadOptions vagy a saját olvasót elfogadó konstruktor túlsúly használatos

FAQ

Kell-e IPackageReader/IPacksageWriter használata a normál táblázatmunkákhoz?

Nem, ezek az interfészek kiterjesztési pontok a fejlett forgatókönyvekhez. Workbook - Egyenesen.

A nem támogatott részeket mentettben tartják?

A következőben felsorolt alkatrészek: PackageModel.UnsupportedParts Ha nem szabványos alkatrészek esetében a forduló-visszatérő hitelességre van szükség, használjon egy csípős szintű utáni feldolgozási lépést.

Mi a különbség az PackageStructureException és a WorkbookLoadExcept között?

PackageStructureException OPC/ZIP szint hibája (a tartalomtípus hiányzik, a kapcsolat megszűnik). WorkbookLoadException a XLSX tartalomban magasabb szintű elemzés vagy szemantikus hiba van.


API-referencia összefoglaló

osztály / interfészLeírás
IPackageReaderOPC csomagok olvasására szolgáló interfész (Read módszer)
IPackageWriterOPC csomagok írásához szükséges interfész (Write módszer)
PackageLoadContextA. Kötelezői Workbook a következők: PackageModel
PackageLoadContext.PackageVisszaadja a PackageModel
PackageModel.PartsA csomag összes tartalmának része.
PackageModel.RelationshipsA KPC-kapcsolati bejegyzések
PackageModel.UnsupportedPartsA könyvtár által feldolgozatlan részek
PackagePartDescriptor.PartUriA rész OPC URI-ja
PackagePartDescriptor.ContentTypeA rész MIME tartalomtípusát
PackagePartDescriptor.CategoryLogikai kategória (munkalap, stílus stb.)
PackageStructureExceptionA szerkezeti jogsértések miatt.
 Magyar