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::
PackageModelA 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.UnsupportedPartsa nem szabványos alkatrészek felfedezésére, amelyeket csendben lehet dobni az út során. - Fogás.
PackageStructureExceptiona következők mellett:WorkbookLoadExceptiona nem megbízható forrásokból származó fájlok betöltésekor. - A Bizottság
IPackageReader/IPackageWriteraz 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és | Okok | Megjavítani. |
|---|---|---|
PackageStructureException terhelve | Szü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ényeltek | A 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ész | Leírás |
|---|---|
IPackageReader | OPC csomagok olvasására szolgáló interfész (Read módszer) |
IPackageWriter | OPC csomagok írásához szükséges interfész (Write módszer) |
PackageLoadContext | A. Kötelezői Workbook a következők: PackageModel |
PackageLoadContext.Package | Visszaadja a PackageModel |
PackageModel.Parts | A csomag összes tartalmának része. |
PackageModel.Relationships | A KPC-kapcsolati bejegyzések |
PackageModel.UnsupportedParts | A könyvtár által feldolgozatlan részek |
PackagePartDescriptor.PartUri | A rész OPC URI-ja |
PackagePartDescriptor.ContentType | A rész MIME tartalomtípusát |
PackagePartDescriptor.Category | Logikai kategória (munkalap, stílus stb.) |
PackageStructureException | A szerkezeti jogsértések miatt. |