עבודה עם עיבוד XML
עבודה עם עיבוד XML
קבצי XLSX מאוחסנים את הנתונים שלהם בחלקים XML בתוך חבילת OPC. Aspose.Cells FOSS for .NET מציג את שכבת הפריסה והרדיואקטיביות של XML באמצעות ארבע קטגוריות תיקיה: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper, ו StylesheetXmlMapper.כל תיבת הדואר מיישמת את שניהם. Read ו Write אלה הם APIs של תשתית פנימית – רוב קוד היישום עובד לחלוטין דרך Workbook ו Worksheet אובייקטים.
XML Mapper מדרגות
כל תיקי XML אחראי לחלק אחד של מבנה XLSX:
| מפה | חלק XML | אחריות |
|---|---|---|
WorkbookXmlMapper | xl/workbook.xml | נתונים מטא-דאו ברמת ספר העבודה, רמזים על לוח, שמות מוגדרים |
WorksheetXmlMapper | xl/worksheets/sheetN.xml | נתונים תאיים, טופס, קישורים יתר, פורמטים תנאי, אימות נתוני |
SharedStringTableXmlMapper | xl/sharedStrings.xml | לוח שורות משותף עבור ערכי שורת מופחתים |
StylesheetXmlMapper | xl/styles.xml | סגנונות תאים, טקסטים, מילונים, גבולות, פורמטים מספרים |
כל תיעוד מראה שתי שיטות - Read ו Write - הוזכר על ידי העומס של הספרייה והחילוץ של צינורות בהתאמה.
XmlParsingException
XmlParsingException הוא נזרק כאשר קובץ פוגש XML שגוי שאינו ניתן לתקן. WorkbookLoadException בהיראקיה של שגיאה כאשר השגיעה מתרחשת במהלך XML parsing ספציפי.
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 אינם נועדו להיות מותאמים לפי קוד היישום – הם מתבקשים באופן אוטומטי במהלך
Workbookבנייה וSave(). - אם אתה צריך לבדוק את התוכן XML הירוק עבור אבחון, להוציא את XLSX כ- ZIP ולבדוק ישירות את החלקים הרלוונטיים של XML.
בעיות נפוצות
| נושא | סיבה | קבע |
|---|---|---|
XmlParsingException על הלחץ | XML מזיק באחד החלקים של XLSX | סדנה TryRepairXml = true בתוך LoadOptions |
| סגנונות חסרים לאחר טיול סביב | StylesheetXmlMapper לא יכול להרוס רשומות סגנון קבוע | צפו LoadDiagnostics.Issues עבור כניסות תיקון הקשורות לסגנון |
| שורות משותפות שנעלמו בקובץ הועלה | SharedStringTableXmlMapper פגשתי שולחן שבור משותף | מאפשרת TryRepairXml;• קובץ מקורי יש תוקף xl/sharedStrings.xml |
FAQ
האם אני יכול לבצע את המפה שלי XML?
שיעורי המפות XML הם תבנית פנימית.מפתים מותאמים אישית אינם נתמכים על פני השטח הנוכחי של API.
למה יש נפרד SharedStringTableXmlMapper?
ה- OOXML מפרק ערכים של שורות לתוך לוח שורה משותף (xl/sharedStrings.xml• כדי להכפיל שורות חוזרות לאורך ספר העבודה.המפה מתמודדת עם קריאה וכתבה של טבלה זו באופן עצמאי.
האם TryRepairXml = true האם יש בעיות XML?
TryRepairXml מתמודדים עם בעיות חוזרות כגון אלמנטים לא סגורים, שטחי שם חסרים וערכים מעוותים. XML שווה מבחינה מבנית אך אינו עקבי מבחינת סמיאנטית (לדוגמה, רמזים של טופס שבור) עדיין עלול לגרום XmlParsingException.
סיכום התייחסות API
| שיעור | תיאור |
|---|---|
WorkbookXmlMapper | קריאה / כתבות xl/workbook.xml |
WorksheetXmlMapper | קריאה/כתבה על-ידי רשימה של חלקים XML |
SharedStringTableXmlMapper | קריאה / כתבות xl/sharedStrings.xml |
StylesheetXmlMapper | קריאה / כתבות xl/styles.xml |
XmlParsingException | עקבו אחרי unrecoverable XML parse failure |