ภาพรวมฟิลด์
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แสดงฟิลด์ผสานในเอกสาร.
มีบางเขตข้อมูลที่มีอยู่ในเอกสารคำที่ไม่ได้นำเข้าเป็นAspose.Wordsเป็นคอลเลกชันของโหนดFieldXXX ตัวอย่างเช่นฟิลด์LINKและฟิลด์INCLUDEPICTUREจะถูกนำเข้าในAspose.Wordsเป็นวัตถุShape อ็อบเจ็กต์นี้จัดเตรียมคุณสมบัติเพื่อทำงานกับข้อมูลรูปภาพที่จัดเก็บในฟิลด์เหล่านี้ เมื่อต้องการอิมพอร์ตฟิลด์INCLUDEPICTUREเป็นโหนดFieldXXXตัวเลือกPreserveIncludePictureFieldต้องระบุเป็นtrue.
ฟิลด์แบบฟอร์มจะถูกนำเข้าเป็นAspose.Wordsเป็นชั้นเรียนพิเศษของตัวเอง คลาสFormFieldแสดงเขตข้อมูลฟอร์มในเอกสารคำและจัดเตรียมวิธีการเพิ่มเติมที่เฉพาะเจาะจง.
ฟิลด์ที่รองรับ
การคำนวณฟิลด์ต่อไปนี้ได้รับการสนับสนุนในเวอร์ชันปัจจุบันของAspose.Words:
- =(สูตร)
ADDRESSBLOCKASKAUTHORAUTONUMAUTONUMLGLAUTONUMOUTAUTOTEXTBARCODECOMMENTSCOMPARECREATEDATEDATABASEDATEDISPLAYBARCODEDOCPROPERTYDOCVARIABLEEDITTIMEEQFILENAMEFILESIZEFILLINFORMCHECKBOXFORMDROPDOWNFORMTEXTGLOSSARYGOTOBUTTONGREETINGLINEHYPERLINKIFIMPORTINCLUDEINCLUDEPICTUREINCLUDETEXTINDEXINFOKEYWORDSLASTSAVEDBYLISTNUMMACROBUTTONMERGEBARCODEMERGEFIELDMERGERECMERGESEQNEXTNEXTIFNOTEREFNUMCHARSNUMPAGESNUMWORDSPAGEPAGEREFPRINTDATEQUOTEREFREVNUMSAVEDATESECTIONSECTIONPAGESSEQSETSHAPESKIPIFSTYLEREFSUBJECTSYMBOLTEMPLATETIMETITLETOATOCUSERADDRESSUSERINITIALSUSERNAME
การแยกฟิลด์ที่มีความซับซ้อน
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รองรับสวิตช์รูปแบบต่อไปนี้:
- @-การจัดรูปแบบวันที่และเวลา
- \#–การจัดรูปแบบหมายเลข
- \\\\*แคป
- \\\\* FirstCap
- \\\\*ต่ำกว่า
- \\\\*บน
- \\\\*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