OOXML Ambalajı ile Çalışma
OOXML Ambalajı ile Çalışma
Bir XLSX dosyası bir Open Packaging Convention (OPC) ZIP arşividir. Aspose.Cells FOSS for .NET, alt paket katmanını ortaya çıkarır. IPackageReader, IPackageWriter,ve o PackageModel Bunlar, teşhis ve araçlama için tasarlanmış düşük seviyeli APIs’lerdir - çoğu uygulama yalnızca yüksek seviyelere sahiptir. Workbook Sınıfı .
Paket Modeli
PackageModel XLSX arşivinin mantıksal içeriğini temsil eder. üç koleksiyonu ortaya çıkarır: Parts (Tüm içerik parçaları için), Relationships (PKK’nın kuralları ile ilgili olarak) ve UnsupportedParts (Kütüphane tarafından işlenmemiş dosyadaki parçalar) Her bir bölümde, PackagePartDescriptor ile PartUri, ContentType,ve 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);Note:
PackageModelBir XLSX dosyasını yüklediğinizde içeride nüfuz edilir. doğrudan istasyon standart yüksek düzeyde çalışma akışının bir parçası değildir.
IPackageReader ve IPacketWriter
IPackageReader Bir tek tanımlayın Read() OPC paketini okumak için bir yöntem. IPackageWriter Bir tek tanımlayın Write() Bu arayüzler kütüphanenin iç ZIP tabanlı okuyucu/yazıcı tarafından uygulanır ve in-memory veya cloud depolama senaryoları için özelleştirilmiş uygulamalar ile sağlanabilir.
// Signature reference — not a complete runnable example
// public interface IPackageReader { void Read(...); }
// public interface IPackageWriter { void Write(...); }PackageStructureException
PackageStructureException XLSX paket yapısı temel olarak geçersiz olduğunda atılır - örneğin, gerekli OPC ilişkileri eksik olduğuna göre. genel istisna hierarşisini genişletir ve hangi yapı değişkeninin ihlal edildiğini açıklayan bir mesaj taşıyor.
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);
}İpuçları ve En İyi Uygulamalar
- Kullanım
PackageModel.UnsupportedPartsSessizce yuvarlak yolda düşebilecek standart olmayan parçaları keşfetmek. - Catch
PackageStructureExceptionAyrıca, ayrıcaWorkbookLoadExceptionGüvenilmez kaynaklardan dosyaları yüklemek. - O zamanlar
IPackageReader/IPackageWriterarayüzler uzantı noktalarıdır; bunları yalnızca özelleştirilmiş depolama ihtiyacınız olduğunda uygulayın (örneğin, yerel bir dosya olmadan bulut blokundan yükleme). - Dişlerin çoğu için,
LoadDiagnostics(Daha fazla erişilebilirWorkbook.LoadDiagnostics) yeterli - paket katmanına düşmek nadiren gereklidir.
ortak sorunlar
| Issue | Cause | Fix |
|---|---|---|
PackageStructureException yük üzerinde | OPC İlişkileri Eksik Oldu | Setleri TryRepairPackage = true içinde LoadOptions;• kontrol LoadDiagnostics.Issues yükün ardından |
UnsupportedParts boş değil | Dosya standart olmayan uzantıları içerir | Bu parçalar, yükte bulunmuşsa verbatim üzerinde saklanır. |
Custom IPackageReader Çağrı Yapılmıyor | Yanlış yapımcı aşırı yüklemeye geçildi | Güvenlik için LoadOptions veya konstruktör aşırı yükleme, özelleştirilmiş okuyucu kabul edilir kullanılır |
FAQ
Normal spreadsheet çalışması için IPackageReader/IPackagesWriter kullanmam gerekiyor mu?
Bu arayüzler gelişmiş senaryolar için uzantı noktalarıdır. tüm standart okuma/yazma işlemleri geçer Workbook Doğrudan .
Desteklemeyen parçalar mu saklanır?
listelenen bölümler PackageModel.UnsupportedParts standart olmayan parçalar için yuvarlak yol sadakat gerekirse, zip düzeyinde bir post-processing adım kullanın.
PackageStructureException ve WorkbookLoadException arasındaki fark nedir?
PackageStructureException OPC/ZIP düzeyinde bir eksiklik gösterir (söz türü kaybolur, kırık ilişki). WorkbookLoadException XLSX içeriğinde daha yüksek düzeyde bir parsa veya semantik eksiklik gösterir.
API Referans Özetleri
| Sınıf / Interface | Description |
|---|---|
IPackageReader | Bir OPC paketini okumak için arayüz (Read Yöntem ) |
IPackageWriter | Bir OPC paketini yazmak için arayüz (Write Yöntem ) |
PackageLoadContext | A’ya bağlanıyor Workbook Onun için PackageModel |
PackageLoadContext.Package | Geri dönmek için PackageModel |
PackageModel.Parts | Paket içindeki tüm içerik parçaları |
PackageModel.Relationships | OPC İlişkileri |
PackageModel.UnsupportedParts | Kütüphane tarafından işlenmemiş parçalar |
PackagePartDescriptor.PartUri | OPC URI’nin tarafı |
PackagePartDescriptor.ContentType | MIME içerik türü bölüm |
PackagePartDescriptor.Category | Mantıksal kategoriler (iş defterleri, stiller vb.) |
PackageStructureException | OPC’nin yapısal ihlallerine karşı |