OOXML Ambalajı ile Çalışma

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: PackageModel Bir 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.UnsupportedParts Sessizce yuvarlak yolda düşebilecek standart olmayan parçaları keşfetmek.
  • Catch PackageStructureException Ayrıca, ayrıca WorkbookLoadException Güvenilmez kaynaklardan dosyaları yüklemek.
  • O zamanlar IPackageReader/IPackageWriter arayü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şilebilir Workbook.LoadDiagnostics) yeterli - paket katmanına düşmek nadiren gereklidir.

ortak sorunlar

IssueCauseFix
PackageStructureException yük üzerindeOPC İlişkileri Eksik OlduSetleri TryRepairPackage = true içinde LoadOptions;• kontrol LoadDiagnostics.Issues yükün ardından
UnsupportedParts boş değilDosya standart olmayan uzantıları içerirBu parçalar, yükte bulunmuşsa verbatim üzerinde saklanır.
Custom IPackageReader Çağrı YapılmıyorYanlış yapımcı aşırı yüklemeye geçildiGü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 / InterfaceDescription
IPackageReaderBir OPC paketini okumak için arayüz (Read Yöntem )
IPackageWriterBir OPC paketini yazmak için arayüz (Write Yöntem )
PackageLoadContextA’ya bağlanıyor Workbook Onun için PackageModel
PackageLoadContext.PackageGeri dönmek için PackageModel
PackageModel.PartsPaket içindeki tüm içerik parçaları
PackageModel.RelationshipsOPC İlişkileri
PackageModel.UnsupportedPartsKütüphane tarafından işlenmemiş parçalar
PackagePartDescriptor.PartUriOPC URI’nin tarafı
PackagePartDescriptor.ContentTypeMIME içerik türü bölüm
PackagePartDescriptor.CategoryMantıksal kategoriler (iş defterleri, stiller vb.)
PackageStructureExceptionOPC’nin yapısal ihlallerine karşı

See Also

 Türkçe