Bekerja dengan Pengolahan XML

Bekerja dengan Pengolahan XML

Bekerja dengan Pengolahan XML

File XLSX menyimpan data mereka dalam bagian XML di dalam paket OPC. Aspose.Cells FOSS untuk .NET mengekspos lapisan analisis dan serialisasi XML melalui empat kelas pemetaan: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper, dan StylesheetXmlMapper.Setiap pemetaan mengimplementasikan keduanya. Read dan (b) Write ini adalah API infrastruktur internal sebagian besar kode aplikasi bekerja sepenuhnya melalui Workbook dan (b) Worksheet benda-benda.


Kelas XML Mapper

Setiap pemetaan XML bertanggung jawab atas satu bagian XML dari struktur XLSX:

PemetaanBagian XMLTanggung jawab
WorkbookXmlMapperxl/workbook.xmlMetadata tingkat buku kerja, referensi lembar, nama yang didefinisikan
WorksheetXmlMapperxl/worksheets/sheetN.xmlData sel, rumus, hyperlink, format bersyarat, validasi data
SharedStringTableXmlMapperxl/sharedStrings.xmlTabel string bersama untuk nilai-nilai string yang tidak diduplikasi
StylesheetXmlMapperxl/styles.xmlGaya sel, font, isian, batas, format nomor

Setiap pemetaan menunjukkan dua metode Read dan (b) Write disebut oleh beban perpustakaan dan tabungan pipa masing-masing.


XmlParsingException

XmlParsingException ditempatkan ketika pemetaan menemukan XML yang salah bentuk dan tidak dapat diperbaiki. Ditimbulkan sebelum WorkbookLoadException dalam hierarki kesalahan ketika kegagalan terjadi selama analisis XML secara khusus.

using Aspose.Cells_FOSS;

var opts = new LoadOptions
{
    TryRepairPackage = true,
    TryRepairXml = true,
};

try
{
    var wb = new Workbook("malformed.xlsx", opts);
    Console.WriteLine("Loaded: " + wb.Worksheets.Count + " sheet(s)");
}
catch (XmlParsingException ex)
{
    Console.WriteLine("XML parse error: " + ex.Message);
}
catch (WorkbookLoadException ex)
{
    Console.WriteLine("Load error: " + ex.Message);
}

Tips dan Praktik Terbaik

  • Set (set) TryRepairXml = true di dalam LoadOptions untuk mengaktifkan jalur pemarso yang toleran terhadap kesalahan dari mapper.
  • Tangkap XmlParsingException Selain itu, WorkbookLoadException saat menangani file dari sistem eksternal yang dapat menghasilkan XML berformat tidak benar.
  • Kelas pemetaan XML tidak dimaksudkan untuk diinstansi oleh kode aplikasi mereka dipanggil secara otomatis selama Workbook konstruksi dan Save().
  • Jika Anda perlu memeriksa konten XML mentah untuk diagnostik, ekstrak XLSX sebagai ZIP dan memeriksa bagian-bagian XML yang relevan secara langsung.

Masalah Umum

IsuPenyebabnyaPerbaiki
XmlParsingException pada bebanXML yang salah dalam bagian XLSXSet (set) TryRepairXml = true di dalam LoadOptions
Gaya yang hilang setelah perjalanan pulang-pergiStylesheetXmlMapper tidak dapat menganalisis catatan gaya kustomPeriksa LoadDiagnostics.Issues untuk entri perbaikan yang berhubungan dengan gaya
String yang dibagikan hilang dalam file dimuatSharedStringTableXmlMapper menemukan tabel string bersama yang rusakMengaktifkan TryRepairXml; verifikasi file asli memiliki validitas xl/sharedStrings.xml

FAQ

Bisakah saya mengimplementasikan pemetaan XML sendiri?

Kelas pemetaan XML adalah infrastruktur internal tertutup. Pemetaan kustom tidak didukung di permukaan API saat ini.

Mengapa ada terpisah SharedStringTableXmlMapper?

Spesifikasi OOXML memisahkan nilai string ke dalam tabel string bersama (xl/sharedStrings.xml) untuk de-duplikasi string berulang di seluruh buku kerja. Mapper menangani membaca dan menulis tabel ini secara independen.

Apakah TryRepairXml = true memperbaiki semua masalah XML?

TryRepairXml menangani masalah yang dapat dipulihkan seperti elemen tidak tertutup, ruang nama hilang, dan nilai terpotong. XML yang valid secara struktural tetapi semantiknya tidak konsisten (misalnya referensi rumus rusak) masih bisa menyebabkan XmlParsingException.


Ringkasan Referensi API

KelasDeskripsi
WorkbookXmlMapperMembaca/menulis xl/workbook.xml
WorksheetXmlMapperMembaca/menulis bagian XML per lembar
SharedStringTableXmlMapperMembaca/menulis xl/sharedStrings.xml
StylesheetXmlMapperMembaca/menulis xl/styles.xml
XmlParsingExceptionDilemparkan pada kegagalan parse XML yang tidak dapat dipulihkan
 Bahasa Indonesia