การทํางานกับการประมวลผล XML

การทํางานกับการประมวลผล 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ส่วน XMLResponsibility
WorkbookXmlMapperxl/workbook.xmlเมตาข้อมูลระดับหนังสือทํางาน, แปลใบการใช้งาน, ชื่อที่กําหนดไว้
WorksheetXmlMapperxl/worksheets/sheetN.xmlข้อมูลเซลล์ สูตร ลิงค์ทางยอดนิยม รูปแบบที่จํากัด โดยเงื่อนไข การยืนยันผลการใช้ข้อมูล
SharedStringTableXmlMapperxl/sharedStrings.xmlตารางรุ่นที่แบ่งสําหรับค่าร่องแบบไม่ซ้ํา
StylesheetXmlMapperxl/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 ที่เกี่ยวข้องโดยตรง.

ปัญหาทั่วไป

IssueCauseแก้ไข
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

ClassDescription
WorkbookXmlMapperอ่าน/เขียน xl/workbook.xml
WorksheetXmlMapperอ่าน/เขียนส่วน XML ต่อใบ
SharedStringTableXmlMapperอ่าน/เขียน xl/sharedStrings.xml
StylesheetXmlMapperอ่าน/เขียน xl/styles.xml
XmlParsingExceptionโดนการพาร์ส XML ที่ไม่สามารถแก้ได้

See Also

 ภาษาไทย