סקירת שדות
Aspose.Words היא ספריית כיתות המיועדת לעיבוד בצד השרת של מסמכים Microsoft Word ותומכת בשדות בדרכים הבאות:
- כל השדות במסמך נשמרים במהלך פתיחה / שמירה והמרות
- ניתן לעדכן את התוצאות של רוב השדות
במאמר זה נלמד עוד על מבנה השדה, השדות הנתמכים ב Aspose.Words ופרטים על עבודה עם שדות כאלה.
מבנה שדות
שדה מורכב מ:
- נקודות ההתחלה והפרדה של השדה משמשות כדי לכלול את התוכן המרכיב את קוד השדה (בדרך כלל כטקסט פשוט).
- מפריד השדה וסוף השדה מקיפים את תוצאת השדה. זה יכול להיות מורכב מסוגים שונים של תוכן החל מריצות טקסט לפסקאות ועד טבלאות.
- ייתכן שלחלק מהשדות אין מפריד, מה שאומר שכל התוכן מהווה את קוד השדה.
- קוד השדה מגדיר את התנהגות השדה והוא מורכב ממזהה השדה ולעתים קרובות פרמטרים אחרים כגון שמות שדות ומתגים.
- תוצאת השדה מכילה את ההערכה האחרונה של השדה. ערך זה מאוחסן בשדה תוצאה וזה מה שמוצג למשתמש. שדות מסוימים עשויים שלא להיות כל תוצאות שדה ולכן לא יציג שום דבר במסמך. כמו כן, ייתכן שחלק מהשדות לא יעודכנו עדיין ולכן גם לא תהיה להם תוצאת שדה.
התוכן המרכיב את קוד השדה מאוחסן כ Run צמתים בין FieldStart ו FieldSeparator. תוצאת השדה מאוחסנת בין הצמתים FieldSeparator ו - FieldEnd ויכולה להיות מורכבת מסוגים שונים של תוכן. בדרך כלל תוצאת השדה מכילה רק טקסט המורכב מ Run צמתים, אולם יתכן שהצומת FieldEnd יהיה ממוקם בפסקה שונה לחלוטין, ובכך הופך את תוצאת השדה למורכבת מ צמתים ברמת הבלוק כמו Table ו Paragraph צמתים גם כן.
הנה תצוגה של איך שדה מאוחסן ב Aspose.Words באמצעות הדוגמה " DocumentExplorer".
שדות במודל אובייקט המסמך Aspose.Words (DOM)
כאשר מסמך נטען לתוך Aspose.Words, השדות של המסמך נטענים לתוך Aspose.Words מודל אובייקט מסמך כמערכת של רכיבים נפרדים (צמתים). שדה יחיד נטען כאוסף של FieldStart, FieldSeparator ו FieldEnd צמתים יחד עם התוכן שבין הצמתים הללו. אם לשדה אין תוצאת שדה אז לא יהיה צומת FieldSeparator. כל הצמתים האלה תמיד נמצאים בשורה (כילדים של Paragraph או SmartTag).
ב Aspose.Words כל אחד מהצמתים FieldXXX נובע מ FieldChar. מחלקה זו מספקת מאפיין לבדיקת סוג השדה המיוצג על ידי הצומת שצוין דרך המאפיין FieldType. לדוגמה FieldType.FieldMergeField מייצג שדה מיזוג במסמך.
ישנם כמה שדות מסוימים הקיימים במסמך Word שאינם מיובאים ל Aspose.Words כאוסף של FieldXXX צמתים. לדוגמה, שדה LINK
ושדה INCLUDEPICTURE
מיובאים ל Aspose.Words כאובייקט Shape
. אובייקט זה מספק מאפיינים לעבודה עם נתוני התמונה המאוחסנים בדרך כלל בשדות אלה. כדי לייבא שדה INCLUDEPICTURE
כצמתים FieldXXX יש לציין את האפשרות PreserveIncludePictureField כ true.
שדות טופס מיובאים גם ל Aspose.Words ככיתה מיוחדת משלהם. הכיתה FormField מייצגת שדה טופס במסמך Word ומספקת שיטות נוספות הספציפיות לשדה טופס.
שדות נתמכים
חישוב השדות הבאים נתמך בגרסה הנוכחית של Aspose.Words:
- = (נוסחה)
ADDRESSBLOCK
ASK
AUTHOR
AUTONUM
AUTONUMLGL
AUTONUMOUT
AUTOTEXT
BARCODE
COMMENTS
COMPARE
CREATEDATE
DATABASE
DATE
DISPLAYBARCODE
DOCPROPERTY
DOCVARIABLE
EDITTIME
EQ
FILENAME
FILESIZE
FILLIN
FORMCHECKBOX
FORMDROPDOWN
FORMTEXT
GLOSSARY
GOTOBUTTON
GREETINGLINE
HYPERLINK
IF
IMPORT
INCLUDE
INCLUDEPICTURE
INCLUDETEXT
INDEX
INFO
KEYWORDS
LASTSAVEDBY
LISTNUM
MACROBUTTON
MERGEBARCODE
MERGEFIELD
MERGEREC
MERGESEQ
NEXT
NEXTIF
NOTEREF
NUMCHARS
NUMPAGES
NUMWORDS
PAGE
PAGEREF
PRINTDATE
QUOTE
REF
REVNUM
SAVEDATE
SECTION
SECTIONPAGES
SEQ
SET
SHAPE
SKIPIF
STYLEREF
SUBJECT
SYMBOL
TEMPLATE
TIME
TITLE
TOA
TOC
USERADDRESS
USERINITIALS
USERNAME
ניתוח שדה מתוחכם
Aspose.Words עוקב אחר הדרך Microsoft Word מעבד שדות וכתוצאה מכך הוא מטפל נכון:
- שדות מקוננים:
IF { =OR({ COMPARE { =2.5 +PRODUCT(3,5 ,8.4) } > 4}, { =2/2 }) } = 1 "Credit not acceptable" "Credit acceptable"
- טיעון שדה יכול להיות תוצאה של שדה מקונן
- ניתן לקנן שדות בתוך קוד שדה כמו גם בתוצאת השדה
- רווחים / ללא רווחים, ציטוטים/ללא ציטוטים, דמויות בריחה בשדות וכו'.:
MERGEFIELD \f"Text after""Field \n\ame with \" and \\\ and \\\*"\bTextBefor\e
- שדות המשתרעים על פני מספר פסקאות
שדות פורמולה
Aspose.Words מספק יישום רציני מאוד של מנוע הנוסחה ותומך בדברים הבאים::
- מפעילים אריתמטיים ולוגיים:
=(54+4*(6-77)-(5))+(-6-5)/4/5
- פונקציות:
=ABS(-01.4)+2.645/(5.6^3.5)+776457 \\\# "#,##0"
- הפניות לסימניות:
=IF(C>4, 5,ABS(A)*.76) +3.85
- מתגי עיצוב מספרים:
=00000000 \\\# "$#,##0.00;($#,##0.00)"
הפונקציות הבאות בביטויים נתמכות: ABS
, AND
, AVERAGE
, COUNT
, DEFINED
, FALSE
, IF
, INT
, MAX
, MIN
, MOD
, NOT
, OR
, PRODUCT
, ROUND
, SIGN
, SUM
, TRUE.
IF
and COMPARE
Fields
רק חלק מהביטויים IF
ש Aspose.Words יכול לחשב בקלות אמור לתת לך מושג עד כמה התכונה הזו חזקה:
IF 3 > 5.7^4+MAX(4,3) True False
IF "abcd" > "abc" True False
IF "?ab*" = "1abdsg" True False
IF 4 = "2*2" True False
COMPARE 3+5/34 < 4.6/3/2
DATE
and TIME
Fields
Aspose.Words תומך בכל מתגי העיצוב של התאריך והשעה הזמינים ב Microsoft Word, כמה דוגמאות הן:
DATE @ "d-MMM-yy"
DATE @ "d/MM/yyyy h:mm am/pm
Mail Merge שדות
Aspose.Words אינו מטיל הגבלה על המורכבות של Mail Merge שדות במסמכים שלך ותומך מקונן IF
ושדות נוסחה ואף יכול לחשב את שם שדה המיזוג באמצעות נוסחה.
כמה דוגמאות לשדות Mail Merge שתומכים Aspose.Words:
- Mail merge שדה מתגים:
MERGEFIELD FirstName \\\\\\\\* FirstCap \b "Mr. "
- שדות מיזוג מקוננים בנוסחה:
IF {
MERGEFIELDValue1 } >= {
MERGEFIELDValue2 } True False
- חשב את שם שדה המיזוג בזמן ריצה:
MERGEFIELD {
IF{
MERGEFIELDValue1 } >= {
MERGEFIELDValue2 } FirstName"LastName" }
- מעבר מותנה לרשומה הבאה במקור הנתונים:
NEXTIF {
MERGEFIELDValue1 } <= { =IF(-2.45 >= 6*{
MERGEFIELDValue2 }, 2, -.45) }
מתגי פורמט
בשדה במסמך יכולים להיות מתגי עיצוב המציינים כיצד יש לעצב את הערך המתקבל. Aspose.Words תומך במתגי הפורמט הבאים:
- @ - עיצוב תאריך ושעה
- \# - עיצוב מספר
- \\\\* Caps
- \\\\* FirstCap
- \\\\* Lower
- \\\\* Upper
- \\\ \* CHARFORMAT - פורמט תוצאה לפי התו הראשון של קוד השדה
- \\\ \* MERGEFORMAT - פורמט תוצאה לפי אופן עיצוב התוצאה הישנה
עיצוב תאריך ומספר בשדות
כאשר Aspose.Words מחשב תוצאת שדה, לעתים קרובות הוא צריך לנתח מחרוזת לערך מספר או תאריך וגם לעצב אותה בחזרה ל string.By ברירת מחדל Aspose.Words משתמש בתרבות החוט הנוכחית כדי לבצע ניתוח ועיצוב בעת חישוב ערכי שדה במהלך עדכון שדה ו mail merge. ישנן גם אפשרויות הניתנות בצורה של FieldOptions מחלקה המאפשרת שליטה נוספת באיזו תרבות משתמשים במהלך עדכון שדה.
- כברירת מחדל, המאפיין FieldUpdateCultureSource מוגדר ל CurrentThread אשר מעצב שדות באמצעות תרבות החוט הנוכחית
- ניתן להגדיר מאפיין זה ל FieldCode כך שהגדרת השפה מקוד השדה של השדה משמשת לעיצוב במקום זאת
עיצוב באמצעות התרבות של החוט הנוכחי
כדי לשלוט בתרבות המשמשת במהלך חישוב שדה, פשוט הגדר את המאפיין CurrentCulture לתרבות שבחרת לפני שתפנה לחישוב שדה.
דוגמת הקוד הבאה מראה כיצד לשנות את התרבות המשמשת בשדות עיצוב במהלך העדכון:
EXAMPLE
השימוש בתרבות הנוכחית לעיצוב שדות מאפשר למערכת לשלוט בקלות ובעקביות באופן שבו כל השדות במסמך מעוצבים במהלך עדכון השדה.
עיצוב באמצעות התרבות במסמך
מצד שני, Microsoft Word מעצב כל שדה בודד בהתבסס על שפת הטקסט שנמצא בשדה (במיוחד, הריצות מקוד השדה). לפעמים במהלך עדכון שדה זו עשויה להיות ההתנהגות הרצויה, למשל אם יש לך מסמכים גלובליים המכילים תוכן המורכב משפות רבות ושונות והיית רוצה שכל שדות יכבדו את האזור המשמש מהטקסט. Aspose.Words תומך גם בפונקציונליות זו.
המחלקה Document מספקת מאפיין FieldOptions המכיל חברים שניתן להשתמש בהם כדי לשלוט באופן עדכון השדות במסמך.
דוגמת הקוד הבאה מראה כיצד לציין מהיכן נבחרה התרבות המשמשת לעיצוב תאריך במהלך עדכון שדה ו Mail Merge:
EXAMPLE