Làm việc với XML Processing
Làm việc với XML Processing
Các tệp XLSX lưu trữ dữ liệu của họ trong các bộ phận XML bên trong một gói OPC. Aspose.Cells FOSS cho .NET tiết lộ lớp phân phối và phân loại XML thông qua bốn lớp bản đồ: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper, và StylesheetXmlMapper.Mỗi bản đồ đều thực hiện cả hai Read và Write Các hoạt động cho phần XML tương ứng của nó. Đây là APIs cơ sở hạ tầng nội bộ - hầu hết mã ứng dụng hoạt hình hoàn toàn thông qua các hệ thống Workbook và Worksheet đối tượng .
Khóa học XML Mapper
Mỗi thư mục XML chịu trách nhiệm cho một phần XML của cấu trúc XLSX:
| Mapper | XML phần | Responsibility |
|---|---|---|
WorkbookXmlMapper | xl/workbook.xml | Mét dữ liệu cấp Workbook, tham chiếu bảng, tên định nghĩa |
WorksheetXmlMapper | xl/worksheets/sheetN.xml | Dữ liệu tế bào, công thức, hyperlinks, định dạng điều kiện, xác thực dữ liệu |
SharedStringTableXmlMapper | xl/sharedStrings.xml | Bảng chia rẽ cho các giá trị string de-duplicated |
StylesheetXmlMapper | xl/styles.xml | Phong cách ô, phông chữ, lấp đầy, giới hạn, định dạng số |
Mỗi bản đồ trình bày hai phương pháp - Read và Write - được gọi bởi tải thư viện và lưu các ống liên quan.
XmlParsing ngoại lệ
XmlParsingException được ném khi một thư mục gặp gỡ XML bị biến dạng mà không thể sửa chữa. nó được nâng lên trước đó WorkbookLoadException trong các biểu đồ lỗi khi thất bại xảy ra trong quá trình xml phân phối cụ thể.
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);
}Mẹo và Thực hành Tốt nhất
- Set Đặt
TryRepairXml = truetrongLoadOptionsđể cho phép con đường đúc nhầm của bản đồ. - Catch
XmlParsingExceptionNgoài ra cònWorkbookLoadExceptionkhi xử lý các tập tin từ các hệ thống bên ngoài có thể tạo ra XML bị biến dạng. - Các lớp bản tệp XML không được thiết kế để được cài đặt bằng mã ứng dụng – chúng được gọi tự động trong thời gian
WorkbookXây dựng vàSave(). - Nếu bạn cần kiểm tra nội dung XML nguyên liệu cho chẩn đoán, hãy lấy XLSX như một ZIP và xem xét các phần XML liên quan trực tiếp.
Các vấn đề thường gặp
| Issue | Cause | Fix Đặt |
|---|---|---|
XmlParsingException trên tải | XML bị hư cấu trong một phần XLSX | Set Đặt TryRepairXml = true trong LoadOptions |
| Những phong cách mất tích sau chuyến đi vòng tròn | StylesheetXmlMapper Không thể ghi lại một bản ghi kiểu tùy chỉnh | Check LoadDiagnostics.Issues cho các bản sửa chữa liên quan đến phong cách |
| Chia sẻ các dây mất trong tệp tải | SharedStringTableXmlMapper gặp một bảng chia sẻ string bị hư hại | Enable TryRepairXml;• Kiểm tra file gốc có hiệu lực xl/sharedStrings.xml |
FAQ
Tôi có thể thực hiện bản xml của riêng tôi không?
Các lớp bản tệp XML được đóng dấu trong cơ sở hạ tầng nội bộ. Bản tàng tùy chỉnh không được hỗ trợ trên bề mặt API hiện tại.
Tại sao lại có một sự riêng biệt SharedStringTableXmlMapper?
Các thông số cụ thể OOXML phân chia các giá trị dòng thành một bảng dòng chung (xl/sharedStrings.xmlđể de-duplicate các dòng lặp lại trên sổ làm việc. thư mục quản lý đọc và viết bảng này độc lập.
Does TryRepairXml = true Xóa tất cả các vấn đề XML?
TryRepairXml xử lý các vấn đề có thể phục hồi như các yếu tố không khóa, mất tên và giá trị bị trượt. XML có tính cấu trúc nhưng không phù hợp về mặt tinh thần (ví dụ: tham chiếu công thức bị hỏng) vẫn có khả năng gây ra XmlParsingException.
Tóm tắt Tham chiếu API
| Class | Description |
|---|---|
WorkbookXmlMapper | Đọc / viết xl/workbook.xml |
WorksheetXmlMapper | Đọc/thiết viết phần XML mỗi bảng |
SharedStringTableXmlMapper | Đọc / viết xl/sharedStrings.xml |
StylesheetXmlMapper | Đọc / viết xl/styles.xml |
XmlParsingException | Thrown trên bất khả phục hồi XML parse thất bại |