รู้เบื้องต้นเกี่ยวกับฟิลด์
Aspose.Wordsเป็นไลบรารีชั้นที่ออกแบบมาสำหรับการประมวลผลฝั่งเซิร์ฟเวอร์ของเอกสารMicrosoft Wordและสนับสนุ:
- ฟิลด์ทั้งหมดในเอกสารจะถูกเก็บรักษาไว้ในระหว่างการเปิด/บันทึกและการแปลง
- มันเป็นไปได้ที่จะปรับปรุงผลของเขตข้อมูลมากที่สุด
ในบทความนี้เราจะเรียนรู้เพิ่มเติมเกี่ยวกับโครงสร้างฟิลด์ฟิลด์ที่สนับสนุนในAspose.Wordsและรายละเ.
โครงสร้างสนาม
เขตข้อมูลประกอบด้วย:
- โหนดเริ่มต้นฟิลด์และตัวคั่นจะใช้เพื่อครอบคลุมเนื้อหาซึ่งสร้างรหัสฟิลด์(ปกติเป็นข้อความล.
- ตัวคั่นฟิลด์และปลายเขตข้อมูลครอบคลุมผลลัพธ์ฟิลด์ นี้สามารถสร้างขึ้นจากประเภทต่างๆของเนื้อหาตั้งแต่การทำงานของข้อความย่อหน้าตารา.
- บางฟิลด์อาจไม่มีตัวคั่นซึ่งหมายความว่าเนื้อหาทั้งหมดสร้างรหัสฟิลด์.
- รหัสฟิลด์กำหนดลักษณะการทำงานของฟิลด์และประกอบด้วยตัวระบุฟิลด์และพารามิเตอร์อื่.
- ผลลัพธ์ฟิลด์มีการประเมินผลล่าสุดของฟิลด์ ค่านี้จะถูกเก็บไว้ในผลลัพธ์ของฟิลด์และเป็นสิ่งที่แสดงให้กับผู้ใช้ บางเขตข้อมูลอาจไม่มีผลฟิลด์ใดๆจึงจะไม่แสดงอะไรในเอกสาร ในทำนองเดียวกันบางเขตข้อมูลอาจไม่ได้รับการปรับปรุงดังนั้นจึงยังจะไม่มีผลฟิลด์.
เนื้อหาที่สร้างรหัสฟิลด์จะถูกเก็บไว้เป็นRunโหนดระหว่างFieldStartและFieldSeparator ผลลัพธ์ของฟิลด์จะถูกเก็บไว้ระหว่างFieldSeparatorและFieldEndโหนดและสามารถสร้างขึ้นจากชนิดของเนื้อหา โดยปกติแล้วผลลัพธ์ของฟิลด์จะมีเพียงข้อความที่สร้างขึ้นจากโหนดรันแต่ก็เป็นไปได้สำหรับFieldEndโหนดที่จะอยู่ในย่อหน้าที่แตกต่างกันอย่างสิ้นเชิง,และทำให้ผลลัพธ์ของฟิลด์ประกอบด้วย โหนดระดับบล็อก เช่นTableและParagraphโหนดเช่นกัน.
นี่คือมุมมองของวิธีการที่ฟิลด์จะถูกเก็บไว้ในAspose.Wordsโดยใช้"*DocumentExplorer"*ตัวอย่างซึ่งสามารถพบได้ใน Github.
ฟิลด์ในAspose.Wordsรูปแบบวัตถุเอกสาร(DOM)
เมื่อเอกสารถูกโหลดลงในAspose.Wordsฟิลด์ของเอกสารจะถูกโหลดลงในแบบจำลองอ็อบเจ็กต์เอกสารAspose.Wordsเป็นชุดของคอมโพเนนต์ที่แยกต่างหาก(โหนด) ฟิลด์เดียวถูกโหลดเป็นคอลเล็กชันของFieldStart,FieldSeparatorและFieldEndโหนดพร้อมกับเนื้อหาในระหว่างโหนดเหล่านี้ ถ้าฟิลด์ไม่มีผลลัพธ์ฟิลด์แล้วจะไม่มีโหนดFieldSeparator ทั้งหมดของโหนดเหล่านี้จะพบแบบอินไลน์เสมอ(เป็นเด็กของParagraphหรือSmartTag.
ในAspose.Wordsแต่ละโหนดFieldXXXมาจากFieldChar คลาสนี้จัดเตรียมคุณสมบัติเพื่อตรวจสอบชนิดของฟิลด์ที่แสดงโดยโหนดที่ระบุผ่านคุณสมบัติFieldType ตัวอย่างเช่นFieldType.FieldMergeField
แสดงฟิลด์ผสานในเอกสาร.
มีบางเขตข้อมูลที่มีอยู่ในเอกสารคำที่ไม่ได้นำเข้าเป็นAspose.Wordsเป็นคอลเลกชันของโหนดFieldXXX ตัวอย่างเช่นฟิลด์LINK
และฟิลด์INCLUDEPICTURE
ถูกนำเข้าในAspose.Wordsเป็นวัตถุShape อ็อบเจ็กต์นี้จัดเตรียมคุณสมบัติเพื่อทำงานกับข้อมูลรูปภาพที่จัดเก็บในฟิลด์เหล่านี้ เมื่อต้องการนำเข้าINCLUDEPICTURE
ฟิลด์เป็นFieldXXXโหนดอ็อพชันPreserveIncludePictureFieldต้องระบุเป็นtrue.
ฟิลด์แบบฟอร์มจะถูกนำเข้าเป็นAspose.Wordsเป็นชั้นเรียนพิเศษของตัวเอง คลาสFormFieldแสดงเขตข้อมูลฟอร์มในเอกสารคำและจัดเตรียมวิธีการเพิ่มเติมที่เฉพาะเจาะจง.
ฟิลด์ที่รองรับ
การคำนวณฟิลด์ต่อไปนี้ได้รับการสนับสนุนในเวอร์ชันปัจจุบันของ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
(including TOT and TOF)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(ใช้กระดาษห่อสาธารณะCurrentThreadSettingsgetLocale()และsetLocale()แทนของเอกชนThread.CurrentThread
CurrentCulture)
การใช้วัฒนธรรมปัจจุบันในการจัดรูปแบบฟิลด์ช่วยให้ระบบสามารถควบคุมได้อย่างง่ายดายและสม่ำเสมอวิธีการจัดรูปแบบฟิลด์ทั้งหมดในเอกสารในระหว่างการอัพเดตฟิลด์.
การจัดรูปแบบโดยใช้วัฒนธรรมในเอกสาร
ในทางกลับกันMicrosoft Wordจัดรูปแบบแต่ละเขตข้อมูลตามภาษาของข้อความที่พบในเขตข้อมูล(โดยเฉพา บางครั้งในระหว่างการปรับปรุงฟิลด์นี้อาจเป็นลักษณะการทำงานที่ต้องการตัวอย่างเช่นถ้ Aspose.Wordsยังสนับสนุนการทำงานนี้.
คลาสDocumentมีคุณสมบัติFieldOptionsซึ่งประกอบด้วยสมาชิกซึ่งสามารถใช้เพื่อควบคุมวิธีการปรับปรุงฟิลด์ภายใ.
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการระบุว่าวัฒนธรรมที่ใช้สำหรับการจัดรูปแบบวันที่ระหว่างการอัพเดตฟิลด์และMail Mergeถูกเลือกจาก:
EXAMPLE