รู้เบื้องต้นเกี่ยวกับฟิลด์
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:
- =(สูตร)
ADDRESSBLOCKASKAUTHORAUTONUMAUTONUMLGLAUTONUMOUTAUTOTEXTBARCODECOMMENTSCOMPARECREATEDATEDATABASEDATEDISPLAYBARCODEDOCPROPERTYDOCVARIABLEEDITTIMEEQFILENAMEFILESIZEFILLINFORMCHECKBOXFORMDROPDOWNFORMTEXTGLOSSARYGOTOBUTTONGREETINGLINEHYPERLINKIFIMPORTINCLUDEINCLUDEPICTUREINCLUDETEXTINDEXINFOKEYWORDSLASTSAVEDBYLISTNUMMACROBUTTONMERGEBARCODEMERGEFIELDMERGERECMERGESEQNEXTNEXTIFNOTEREFNUMCHARSNUMPAGESNUMWORDSPAGEPAGEREFPRINTDATEQUOTEREFREVNUMSAVEDATESECTIONSECTIONPAGESSEQSETSHAPESKIPIFSTYLEREFSUBJECTSYMBOLTEMPLATETIMETITLETOATOC(including TOT and TOF)USERADDRESSUSERINITIALSUSERNAME
การแยกฟิลด์ที่มีความซับซ้อน
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 FalseIF "abcd" > "abc" True FalseIF "?ab*" = "1abdsg" True FalseIF 4 = "2*2" True FalseCOMPARE 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.CurrentThreadCurrentCulture)
การใช้วัฒนธรรมปัจจุบันในการจัดรูปแบบฟิลด์ช่วยให้ระบบสามารถควบคุมได้อย่างง่ายดายและสม่ำเสมอวิธีการจัดรูปแบบฟิลด์ทั้งหมดในเอกสารในระหว่างการอัพเดตฟิลด์.
การจัดรูปแบบโดยใช้วัฒนธรรมในเอกสาร
ในทางกลับกันMicrosoft Wordจัดรูปแบบแต่ละเขตข้อมูลตามภาษาของข้อความที่พบในเขตข้อมูล(โดยเฉพา บางครั้งในระหว่างการปรับปรุงฟิลด์นี้อาจเป็นลักษณะการทำงานที่ต้องการตัวอย่างเช่นถ้ Aspose.Wordsยังสนับสนุนการทำงานนี้.
คลาสDocumentมีคุณสมบัติFieldOptionsซึ่งประกอบด้วยสมาชิกซึ่งสามารถใช้เพื่อควบคุมวิธีการปรับปรุงฟิลด์ภายใ.
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการระบุว่าวัฒนธรรมที่ใช้สำหรับการจัดรูปแบบวันที่ระหว่างการอัพเดตฟิลด์และMail Mergeถูกเลือกจาก:
EXAMPLE