כך נבנה קבצי OpenXML

למעשה כל קבצי ה docx המוכרים לנו מהגירסה החדשה של Office 2007 הם קבצי zip. אם נשנה את הסיומת ל zip ונפתח אותו, נראה שיש מבנה של כמה קבצי xml (מבנה שיחסית מזכיר את זה של odt שאיתו עובד OpenOffice).
הקובץ היותר מעניין אותנו הוא Document.xml.

לאחרונה יצאה גירסה של OpenXML SDK 2 שמאפשרת לנו לבנות ולערוך קבצי docx,pptx,xlsx בלי לפתוח לשם כך תוכנת word ולהשתמש ב vba. זה מוסיף המון למהירות וליציבות של התוכנה שנבנה.

כדי להוסיף תמונה או טקסט נצטרך לכתוב כמה איתחולים של מחלקות בצורה די מורכבת. קשה מאד להבין את המבנה המדוייק, ולכן בא לעזרתנו כלי שנקרא DocumentReflecor שמגיע יחד עם ה SDK. נוסיף תמונה או טקסט כלשהו, נשמור את הקובץ ונפתח עם ה DocumentReflector. ניגש לאלמנט המתאים בעץ ה XML ונראה מצד ימין את החילול קוד הדרוש כדי לבנות את זה. צריך לשים לב שהקוד מופיע ב c# גירסה 3, כלומר יעבוד רק עם 2008 ומעלה.

יחד עם זאת יש יתרונות שלא מצאתי להם פתרון ל-api הרגיל של word. בין היתר אני לא יודע איך ניגשים לעמוד מסויים ב XML. המבנה של גוף המסמך מורכב מרשימה ארוכה של פיסקאות (Paragraph) ואין שום פונקציה שמאפשרת לנו להעריך באיזה עמוד אנחנו נמצאים.


לפרטים נוספים: http://openxmldeveloper.org

Post a Comment

Previous Post Next Post