עבודה עם שכבת מודל חוברת העבודה
עבודה עם שכבת מודל חוברת העבודה
מתחת ל-API שמוצג למשתמש, הקרט משמר שכבת מודל נתונים פשוטה המשקפת את חבילת XLSX: מבני ערך, מודלי כללים, ואחסון משותף. רוב היישומים לעולם אינם נוגעים בסוגים אלה ישירות, אך הם נחשפים כשאתם בודקים חוברות עבודה טעונות לעומק או תורמים לקרט עצמו.
סוגי ערך
ColorValue מכיל מרכיבי צבע ARGB כשדות פשוטים של a, r, g, b, עם equals ו-get_hash_code להשוואות. עיצוב מספרים ברמת המודל נמצא ב-NumberFormatValue, אשר תומך ב-clone להעתקת הגדרות עיצוב בין רשומות מודל.
מודלי כללים
לכללי איכות הנתונים יש זוגי מודל: ValidationModel חושף את areas, validation_type, alert_style, operator של הכלל, ואת הביטויים formula1 / formula2 כשדות; FormatConditionModel ו-ConditionalFormattingModel ממלאים תפקיד זהה עבור רשומות עיצוב מותנה. אלו נבנים באמצעות default וממולאים שדה-בשדה.
אחסון מחרוזות משותף
קבצי XLSX מאחסנים טקסט תאים חוזר בטבלת מחרוזות משותפות. הSharedStringRepository מודל זאת כמחלקת אינטרנר:
internמוסיף מחרוזת ומחזיר את המיקום שלה (שימוש חוזר ברשומות קיימות),try_get_valueפותר אינדקס חזרה למחרוזת שלו,clearמאפס את המאגר.
Diagnostics
DiagnosticBag אוסף בעיות מובנות באמצעות add במהלך פעולות המודל. ברמת API המידע הזה מגיע אליך דרך LoadDiagnostics כאשר טוענים חוברות — ראה סקירת תכונות.
טיפים ושיטות מומלצות
- העדף את API המוצג למשתמש (
Workbook,Worksheet, איסופי תאים) — שכבת המודל אינה נדרשת לעבודה שוטפת עם גיליון אלקטרוני. - התייחס למבני מודל כאל רשומות נתונים: צור עם
default, ואז הגדר שדות במפורש. - כאשר מחקרים קבצים פגומים, שלב דגלי תיקון של
LoadOptionsעם האבחונים שהטוען מדווח.
בעיות נפוצות
| בעיה | סיבה | תיקון |
|---|---|---|
| מחרוזות משותפות משוכפלות | עקיפת ה-interner | נתב טקסט דרך SharedStringRepository.intern |
| כלל האימות נזנח | שדות המודל חסרים | הגדר את validation_type, operator ו-formula1 ב-ValidationModel |
FAQ
האם אני צריך את שכבת המודל כדי לכתוב גיליונות אלקטרוניים?
לא. ה-Workbook API מכסה יצירה, עריכה ושמירת חוברות; שכבת המודל תומכת בזה.
מדוע מבני מודל משתמשים בבוני default?
הם רשומות נתונים פשוטות המשקפות את מבני XLSX — default מספק רשומה ריקה שאתה ממלא שדה אחרי שדה.
API Reference סיכום
| מחלקה/שיטה | תיאור |
|---|---|
ColorValue | רשומת צבע ARGB (a, r, g, b) |
NumberFormatValue.clone | העתק הגדרת פורמט מספר |
ValidationModel | רשומת כלל אימות (אזורים, מפעיל, נוסחאות) |
FormatConditionModel.default | רשומת כלל פורמט מותנה ריקה |
SharedStringRepository.intern | בצע אינטרנינג למחרוזת, ומחזיר את האינדקס שלה |
SharedStringRepository.try_get_value | פתר אינדקס פנימי |
DiagnosticBag.add | תעד אבחנה מובנית |