การทํางานกับการประมวลผล XML
การทํางานกับการประมวลผล XML
ไฟล์ XLSX จัดเก็บข้อมูลในส่วน XML ภายในแพ็คเกจ OPC. Aspose.Cells FOSS สําหรับ .NET เปิดเผยชั้นการพารัสและเรียงแบบ XML โดยใช้ 4 คลาสเมปเปอร์: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper,และ StylesheetXmlMapper. การทําแผนที่แต่ละครั้ง จะนําทั้ง 2 รายการมาใช้ Read และ Write การปฏิบัติงานสําหรับส่วน XML ที่ตรงกับมัน นี่คือ API ของโครงสร้างภายใน โค้ดแอพลิเคชั่นส่วนใหญ่ทํางานโดยสิ้นสุดผ่านการใช้งานของ Workbook และ Worksheet อัตถุประกอบ.
XML Mapper คลาส
แต่ละตัวทําแผนที่ XML มีหน้าที่สําหรับส่วนหนึ่งของ XLSX:
| Mapper | ส่วน XML | Responsibility |
|---|---|---|
WorkbookXmlMapper | xl/workbook.xml | เมตาข้อมูลระดับหนังสือทํางาน, แปลใบการใช้งาน, ชื่อที่กําหนดไว้ |
WorksheetXmlMapper | xl/worksheets/sheetN.xml | ข้อมูลเซลล์ สูตร ลิงค์ทางยอดนิยม รูปแบบที่จํากัด โดยเงื่อนไข การยืนยันผลการใช้ข้อมูล |
SharedStringTableXmlMapper | xl/sharedStrings.xml | ตารางรุ่นที่แบ่งสําหรับค่าร่องแบบไม่ซ้ํา |
StylesheetXmlMapper | xl/styles.xml | รูปแบบเซลล์, แฟนต์, เติม, ขอบเขต, ลักษณะตัวเลข |
แต่ละการ์ตูนแสดงวิธีสอง Read และ Write เรียกโดยอัตราบรรจุของห้องสมุดและประหยัดท่ออย่างต่อเนื่อง.
XmlParsingException (การพิจารณา)
XmlParsingException ถูกโยนเมื่อการทําแผนที่พบกับ XML ที่มีรูปแบบผิดปกติ ซึ่งไม่สามารถแก้ไขได้ มันถูกยกขึ้นก่อนหน้านี้ WorkbookLoadException ในระดับความผิดพลาด เมื่อเกิดการล้มเหลวในระหว่าง การพารัส XML โดยเฉพาะ.
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);
}เคล็ดลับและปฏิบัติที่ดีที่สุด
- เซ็ต
TryRepairXml = trueในLoadOptionsเพื่อเปิดเส้นทางการพาราส์ที่ทนความผิดพลาดของผู้ทําแผนภูมิ. - Catch
XmlParsingExceptionนอกจากนี้WorkbookLoadExceptionเมื่อจัดการไฟล์จากระบบภายนอก ที่อาจสร้าง XML แบบผิดรูปแบบได้. - XML mapper class ไม่ถูกตั้งไว้เพื่อการอัตราฐานโดยรหัสแอพลิเคชั่น พวกเขาได้รับการเรียกโดยอุ่นเครื่องในระหว่าง
Workbookการก่อสร้างและSave(). - หากคุณต้องการตรวจสอบเนื้อหา XML แผนที่ไม่แพร่เพื่อการวินิจฉัย, สกัด XLSX เป็น ZIP และดูส่วนของ XML ที่เกี่ยวข้องโดยตรง.
ปัญหาทั่วไป
| Issue | Cause | แก้ไข |
|---|---|---|
XmlParsingException ในภาระ | XML ที่มีผิดปกติในส่วนหนึ่งของ XLSX | เซ็ต TryRepairXml = true ใน LoadOptions |
| สไตล์ที่หายไปหลังจากการเดินทางกลับ | StylesheetXmlMapper ไม่สามารถพารัสบันทึกสไตล์ที่กําหนดเองได้ | Check LoadDiagnostics.Issues สําหรับการเขียนความหมายในการซ่อมแซมที่เกี่ยวข้องกับสไตล์ |
| แถวที่แบ่งปันขาดในไฟล์ที่อัพโหลด | SharedStringTableXmlMapper พบตารางสแตนด์การแบ่งปันที่เสียหาย | Enable TryRepairXml; ยืนยันว่าไฟล์เดิมมีตัวเลขที่ถูกต้อง xl/sharedStrings.xml |
FAQ
ผมสามารถนํา XML mapper ของตัวเองมาใช้ได้หรือไม่?
กลุ่ม XML mapper เป็นโครงสร้างภายในที่ปิดไว้. การทําแผนที่ตามความต้องการไม่ได้รับการสนับสนุนในพื้นผิว API ปัจจุบัน.
ทําไมถึงมีส่วนแยกกัน SharedStringTableXmlMapper?
OOXML เอกสารจําแนกแยกค่า string เป็นตารางการแบ่งรัง (xl/sharedStrings.xml) เพื่อลดการคัดรหัสซ้ําต่อเนื่องในสมุดงาน Mapper จับอ่านและเขียนตารางนี้อย่างอิสระ.
Does TryRepairXml = true แก้ปัญหา XML ทั้งหมด?
TryRepairXml การจัดการปัญหาที่สามารถซ่อมได้ เช่น อุปกรณ์ไม่ปิด, สเปสชื่อหายไป และค่าขั้น. XML ที่มีคุณภาพทางโครงสร้าง แต่มีความแตกต่างกันในเชิงการแปลภาษา (เช่น คําอ้างอิงสูตรที่หัก) ยังอาจทําให้ XmlParsingException.
คําอธิบายการพบบ่อย API
| Class | Description |
|---|---|
WorkbookXmlMapper | อ่าน/เขียน xl/workbook.xml |
WorksheetXmlMapper | อ่าน/เขียนส่วน XML ต่อใบ |
SharedStringTableXmlMapper | อ่าน/เขียน xl/sharedStrings.xml |
StylesheetXmlMapper | อ่าน/เขียน xl/styles.xml |
XmlParsingException | โดนการพาร์ส XML ที่ไม่สามารถแก้ได้ |