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:
| Pemetaan | Bagian XML | Tanggung jawab |
|---|---|---|
WorkbookXmlMapper | xl/workbook.xml | Metadata tingkat buku kerja, referensi lembar, nama yang didefinisikan |
WorksheetXmlMapper | xl/worksheets/sheetN.xml | Data sel, rumus, hyperlink, format bersyarat, validasi data |
SharedStringTableXmlMapper | xl/sharedStrings.xml | Tabel string bersama untuk nilai-nilai string yang tidak diduplikasi |
StylesheetXmlMapper | xl/styles.xml | Gaya 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 = truedi dalamLoadOptionsuntuk mengaktifkan jalur pemarso yang toleran terhadap kesalahan dari mapper. - Tangkap
XmlParsingExceptionSelain itu,WorkbookLoadExceptionsaat 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
Workbookkonstruksi danSave(). - Jika Anda perlu memeriksa konten XML mentah untuk diagnostik, ekstrak XLSX sebagai ZIP dan memeriksa bagian-bagian XML yang relevan secara langsung.
Masalah Umum
| Isu | Penyebabnya | Perbaiki |
|---|---|---|
XmlParsingException pada beban | XML yang salah dalam bagian XLSX | Set (set) TryRepairXml = true di dalam LoadOptions |
| Gaya yang hilang setelah perjalanan pulang-pergi | StylesheetXmlMapper tidak dapat menganalisis catatan gaya kustom | Periksa LoadDiagnostics.Issues untuk entri perbaikan yang berhubungan dengan gaya |
| String yang dibagikan hilang dalam file dimuat | SharedStringTableXmlMapper menemukan tabel string bersama yang rusak | Mengaktifkan 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
| Kelas | Deskripsi |
|---|---|
WorkbookXmlMapper | Membaca/menulis xl/workbook.xml |
WorksheetXmlMapper | Membaca/menulis bagian XML per lembar |
SharedStringTableXmlMapper | Membaca/menulis xl/sharedStrings.xml |
StylesheetXmlMapper | Membaca/menulis xl/styles.xml |
XmlParsingException | Dilemparkan pada kegagalan parse XML yang tidak dapat dipulihkan |