---
title: "การทำงานกับสารบัญในJava"
---

บ่อยครั้งที่คุณจะทำงานกับเอกสารที่มีสารบัญ(TOC) โดยใช้Aspose.Wordsคุณสามารถแทรกตารางเนื้อหาของคุณเองหรือสร้างตารางเนื้อหาที่มีอยู่ในเอกสารโดยใช้เพียงไม่กี่บรรทัดของรหัส.

บทความนี้แสดงวิธีการทำงานกับตารางของฟิลด์เนื้อหาและสาธิต:

- วิธีการแทรกแบรนด์ใหม่TOC.
- อัปเดตใหม่หรือที่มีอยู่TOCsในเอกสาร.
- ระบุสวิตช์เพื่อควบคุมการจัดรูปแบบและโครงสร้างโดยรวมของTOC.
- วิธีการปรับเปลี่ยนรูปแบบและลักษณะของสารบัญ.
- วิธีการลบฟิลด์`TOC`ทั้งหมดพร้อมกับรายการทั้งหมดจากเอกสาร.

## แทรกสารบัญทางโปรแกรม

คุณสามารถแทรกฟิลด์`TOC`(สารบัญ)ลงในเอกสารที่ตำแหน่งปัจจุบันโดยการเรียกวิธีการ[InsertTableOfContents](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/#insertTableOfContents-java.lang.String).

ตารางของเนื้อหาในเอกสารคำสามารถสร้างขึ้นในหลายวิธีและจัดรูปแบบโดยใช้ตัวเลือ สลับฟิลด์ที่คุณส่งผ่านไปยังวิธีการควบคุมวิธีการสร้างตารางและแสดงในเอกสารของคุณ.

สวิตช์ดีฟอลต์ที่ใช้ใน`TOC`แทรกในMicrosoft Wordคือ**"\o "1-3 \h \z \u"** คำอธิบายของสวิทช์เหล่านี้เช่นเดียวกับรายการของสวิทช์ที่สนับสนุนสามารถพบได้ในภายห คุณสามารถใช้คู่มือนั้นเพื่อขอรับสวิตช์ที่ถูกต้องหรือถ้าคุณมีเอกสารที่มี`TOC`คล้ายกันที่คุณต้องการคุณสามารถแสดงรหัสฟิลด์(*ALT+F9*)และคัดลอกสวิตช์โดยตรงจากฟิลด์.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการแทรกตารางของสารบัญฟิลด์ลงในเอกสาร:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-tableofcontents-InsertATableOfContentsField-InsertATableOfContentsField.java" >}}

ตัวอย่างรหัสต่อไปนี้สาธิตวิธีการแทรกสารบัญ(TOC)ลงในเอกสารโดยใช้ลักษณะหัวเรื่องเป็นรา:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-tableofcontents-InsertATableOfContentsUsingHeadingStyles-InsertATableOfContentsUsingHeadingStyles.java" >}}

รหัสแสดงให้เห็นถึงตารางใหม่ของเนื้อหาจะถูกแทรกลงในเอกสารที่ว่างเปล่า จากนั้นคลาส[DocumentBuilder](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/)จะถูกใช้เพื่อแทรกการจัดรูปแบบเนื้อหาตัวอย่างที่มีลักษณะหัวเรื่องที่เหมาะสมซึ่งใช้เพื่อทำเครื่องหมายเนื้อหาที่จะรวมอยู่ในTOC บรรทัดถัดไปแล้วเติม`TOC`โดยการอัปเดตฟิลด์และเค้าโครงหน้าของเอกสาร.

![insert-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-1.png)

```

ถ้าไม่มีวิธีที่ใช้ในตัวอย่างเมื่อคุณเปิดเอกสารออกคุณจะพบฟิลด์`TOC`แต่ไม่มีเนื้อหาที่มองเห็นได้ นี้เป็นเพราะฟิลด์`TOC`ถูกแทรกแต่ยังไม่มีประชากรจนกว่าจะมีการอัปเดตในเอกสาร ข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้จะกล่าวถึงในส่วนถัดไป.

```

## ปรับปรุงสารบัญ

Aspose.Wordsช่วยให้คุณสามารถปรับปรุงอย่างสมบูรณ์`TOC`ที่มีเพียงไม่กี่บรรทัดของรหัส นี้สามารถทำได้เพื่อเติมใหม่แทรก`TOC`หรืออัปเดตที่มีอยู่`TOC`หลังจากการเปลี่ยนแปลงเอกสารได้.

ต้องใช้สองวิธีต่อไปนี้เพื่ออัพเดตฟิลด์`TOC`ในเอกสาร:

1. [Document.updateFields()](https://reference.aspose.com/words/java/com.aspose.words/Document#updateFields())
1. [Document.updatePageLayout()](https://reference.aspose.com/words/java/com.aspose.words/Document#updatePageLayout())

โปรดทราบว่าทั้งสองวิธีการปรับปรุงจะต้องถูกเรียกในลำดับที่ ถ้าย้อนกลับตารางของเนื้อหาจะถูกป้อนข้อมูลแต่จะไม่มีหมายเลขหน้าจะปรากฏ สามารถอัปเดตจำนวนของTOCsที่แตกต่างกัน วิธีการเหล่านี้จะอัปเดตTOCsทั้งหมดที่พบในเอกสารโดยอัตโนมัติ.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการสร้างเขตข้อมูล`TOC`ในเอกสารโดยเรียกใช้การปรับปรุงฟิลด์:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-tableofcontents-InsertATableOfContentsField-UpdateTableOfContents.java" >}}

การโทรครั้งแรกที่[Document.updateFields()](https://reference.aspose.com/words/java/com.aspose.words/document/#updateFields)จะสร้าง`TOC`,รายการข้อความทั้งหมดมีประชากรและ`TOC`จะปรากฏเกือบเสร็จ สิ่งเดียวที่ขาดหายไปคือหมายเลขหน้าซึ่งตอนนี้จะแสดงด้วย"?".

สายที่สองไปยัง[Document.updatePageLayout()](https://reference.aspose.com/words/java/com.aspose.words/document/#updatePageLayout)จะสร้างเค้าโครงของเอกสารในหน่วยความจำ การตลาดทางอินเทอร์เน็ต,การขาย,การตลาด,การโฆษณา,รายชื่อผู้มุ่งหวัง หมายเลขหน้าที่ถูกต้องคำนวณจากสายนี้จะถูกแทรกลงในTOC.

## ใช้สวิตช์เพื่อควบคุมสารบัญลักษณะการทำงาน

เช่นเดียวกับฟิลด์อื่นๆฟิลด์`TOC`สามารถยอมรับสวิตช์ที่กำหนดไว้ภายในโค้ดฟิลด์ที่ควบคุมวิธีการส สวิตช์บางอย่างใช้เพื่อควบคุมรายการที่จะถูกรวมและที่ระดับใดในขณะที่คนอื่นๆจะใช้ในการควบคุมลักษณะที่ปรากฏของTOC สวิทช์สามารถรวมเข้าด้วยกันเพื่อให้ตารางที่ซับซ้อนของเนื้อหาที่จะผลิต.

![ccontrol-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-2.png)

โดยค่าเริ่มต้นสวิตช์เหล่านี้ข้างต้นจะรวมอยู่เมื่อใส่ค่าเริ่มต้น`TOC`ในเอกสาร `TOC`ที่ไม่มีสวิตช์จะรวมถึงเนื้อหาจากรูปแบบส่วนหัวในตัว(ราวกับว่าสวิตช์\โอถูกตั้งค่า).

สวิตช์ที่มีอยู่`TOC`ที่ได้รับการสนับสนุนโดยAspose.Wordsจะแสดงรายการด้านล่างและการใช้งานของสวิทช์ พวกเขาสามารถแบ่งออกเป็นส่วนที่แยกต่างหากขึ้นอยู่กับประเภทของพวกเขา สวิตช์ในส่วนแรกกำหนดเนื้อหาที่จะรวมใน`TOC`และสวิตช์ในส่วนที่สองควบคุมลักษณะที่ปรากฏของTOC.

ถ้าสวิตช์ไม่อยู่ในรายการที่นี่แล้วมันจะไม่ได้รับการสนับสนุนในขณะนี้ สวิทช์ทั้งหมดจะได้รับการสนับสนุนในรุ่นอนาคต เราจะเพิ่มการสนับสนุนเพิ่มเติมเพื่อให้ทุกรุ่น.

### สวิตช์การทำเครื่องหมายรายการ

| สวิตช์ | การบรรจุ |
| :- | :- |
| **Heading Styles** *(สวิตช์\โอ)*  | <p>สวิตช์นี้กำหนดว่า`TOC`ควรสร้างขึ้นจากลักษณะหัวเรื่องในตัว ในMicrosoft Wordเหล่านี้ถูกกำหนดโดยHeading 1-Heading 9 ในAspose.Wordsลักษณะเหล่านี้จะแสดงโดยการแจงนับStyleIdentifierที่สอดคล้องกัน การแจงนับนี้แสดงตัวระบุแบบโลแคลของสไตล์ตัวอย่างเช่น`StyleIdentifier.Heading1`แสดงถึงสไตล์Heading 1 รจัดรูปแบบและคุณสมบัติของสไตล์สามารถดึงข้อมูลได้จากคอลเล็กชันสไตล์ของเอกสาร คลาสสไตล์ที่สอดคล้องกันสามารถดึงข้อมูลจากคอลเลกชัน`Document.Styles`โดยใช้คุณสมบัติการทำดัชนีของชนิดStyleIdentifier</p><p>![style-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-3.png)</p><p>เนื้อหาใดๆที่จัดรูปแบบด้วยรูปแบบเหล่านี้จะรวมอยู่ในตารางของเนื้อหา ระดับของส่วนหัวจะกำหนดระดับลำดับชั้นที่สอดคล้องกันของรายการในTOC ตัวอย่างเช่นย่อหน้าที่มีสไตล์Heading 1จะถือว่าเป็นระดับแรกใน`TOC`ในขณะที่ย่อหน้าที่มีHeading 2จะถือว่าเป็นระดับถัดไปในลำดับชั้นและอื่นๆ</p> |
| **Outline Levels***(\Uสวิตช์)* | <p>แต่ละย่อหน้าสามารถกำหนดระดับเค้าร่างภายใต้ตัวเลือกย่อหน้า</p><p>![modify-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-4.png)</p><p>การตั้งค่านี้กำหนดระดับย่อหน้านี้ควรได้รับการปฏิบัติในลำดับชั้นของเอกสาร นี่คือการปฏิบัติที่ใช้กันทั่วไปที่ใช้ในการจัดโครงสร้างโครงร่างของเอกสาร ลำดับชั้นนี้สามารถดูได้โดยการเปลี่ยนเป็นมุมมองเค้าร่างในMicrosoft Word คล้ายกับรูปแบบหัวเรื่องสามารถมีระดับเค้าร่าง 1-9 นอกเหนือไปจาก"ข้อความร่างกาย"ระดั ระดับเค้าร่าง 1-9 จะปรากฏใน`TOC`ในระดับที่สอดคล้องกันของลำดับชั้น เนื้อหาใดๆที่มีระดับเค้าร่างที่กำหนดไว้ในสไตล์ย่อหน้าหรือโดยตรงในย่อหน้าจะรวมอยู่ในTOC ในAspose.Wordsระดับเค้าร่างจะแสดงโดยคุณสมบัติ`ParagraphFormat.OutlineLevel`ของโหนดย่อหน้า ระดับเค้าร่างของสไตล์ย่อหน้าจะแสดงในลักษณะเดียวกันโดยคุณสมบัติ`Style.ParagraphFormat`</p><p>```</p><p>โปรดทราบว่ารูปแบบส่วนหัวในตัวเช่นHeading 1มีระดับเค้าร่างบังคับตั้งค่าในการตั้งค่าลักษณะ</p><p>```</p> |
| **Custom Styles***(\Tสวิตช์)* | <p>สวิตช์นี้จะอนุญาตให้ใช้รูปแบบที่กำหนดเองเมื่อมีการรวบรวมรายการที่จะใช้ในการTOC มักจะใช้ร่วมกับสวิตช์\โอที่จะรวมรูปแบบที่กำหนดเองพร้อมกับรูปแบบหัวเรื่องในตัวในTOC พารามิเตอร์ของสวิทช์ควรอยู่ภายในเครื่องหมายคำพูด Stylesระบุชื่อตามด้วยเครื่องหมายจุลภาคตามด้วยระดับที่สไตล์ควรจะปรากฏใน`TOC`เป็น อ้างอิงแก้ไข ตัวอย่างเช่น</p><p>```csharp{ TOC \o "1-3" \t "CustomHeading1, 1,   CustomHeading2, 2"}```</p><p>จะใช้เนื้อหาสไตล์ด้วยCustomHeading1เป็นระดับ 1 เนื้อหาใน`TOC`และCustomHeading2เป็นระดับ 2</p> |
| ใช้ฟิลด์ TC*(สวิตช์ &#92;F และ &#92;L)* | <p>ในเวอร์ชันเก่าของ Microsoft Word วิธีเดียวที่จะสร้าง `TOC` ได้คือการใช้ฟิลด์ TC ฟิลด์เหล่านี้จะถูกแทรกซ่อนไว้ในเอกสารแม้ว่าจะมีการแสดงโค้ดฟิลด์ก็ตาม ฟิลด์เหล่านี้รวมข้อความที่ควรจะแสดงในรายการและ `TOC` จะถูกสร้างขึ้นจากโค้ดเหล่านี้ ฟังก์ชันนี้ไม่ค่อยได้ใช้บ่อยนักในปัจจุบัน แต่ยังคงมีประโยชน์ในบางโอกาสเพื่อรวมรายการใน `TOC` ที่ไม่ได้ย่อหน้าเพื่อให้มองเห็นได้ในเอกสารเมื่อแทรกฟิลด์เหล่านี้จะปรากฏเป็นซ่อนอยู่ แม้ว่าจะแสดงรหัสฟิลด์ก็ตาม ไม่สามารถมองเห็นได้หากไม่แสดงเนื้อหาที่ซ่อนอยู่ หากต้องการดูฟิลด์เหล่านี้ จะต้องเลือกการจัดรูปแบบย่อหน้า</p><p>![setup-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-5.png)</p><p>คุณสามารถแทรกฟิลด์เหล่านี้ลงในเอกสารได้ทุกตำแหน่ง เช่นเดียวกับฟิลด์อื่นๆ และแสดงด้วยการแจงนับ `FieldType.FieldTOCEntry`สวิตช์ &#92;F ใน `TOC` ใช้เพื่อระบุว่าควรใช้ฟิลด์ TC เป็นรายการ สวิตช์ที่ไม่มีตัวระบุพิเศษใดๆ หมายความว่าฟิลด์ TC ใดๆ ในเอกสารจะถูกรวมไว้ พารามิเตอร์พิเศษใดๆ ซึ่งมักจะเป็นตัวอักษรเพียงตัวเดียว จะระบุว่าเฉพาะฟิลด์ TC ที่มีสวิตช์ \f ที่ตรงกันเท่านั้นที่จะรวมอยู่ใน TOC ตัวอย่างเช่น *</p><p>```csharp{ TOC \f t }```</p><p>จะรวมเฉพาะฟิลด์ TC เช่น</p><p>```csharp{ TC \f t }```</p><p>ฟิลด์ `TOC` ยังมีสวิตช์ที่เกี่ยวข้องอีกด้วย สวิตช์ &#92;L ระบุว่าจะรวมเฉพาะฟิลด์ TC ที่มีระดับภายในช่วงที่ระบุเท่านั้น</p><p>![table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-6.png)</p><p>ฟิลด์ `TC` เองสามารถตั้งค่าสวิตช์ `{several, multiple, a few, many, numerous}` ได้ ดังต่อไปนี้:</p><p>- &#92;F - อธิบายไว้ข้างต้น&#42;</p><p>- &#92;L - กำหนดว่าฟิลด์ TC นี้จะปรากฏในระดับใดใน `TOC` `TOC` ที่ใช้สวิตช์เดียวกันนี้จะรวมฟิลด์ TC เฉพาะในกรณีที่อยู่ในช่วงที่ระบุเท่านั้น</p><p>- _&#92;N - ไม่แสดงหมายเลขหน้าสำหรับรายการ `TOC` นี้ ตัวอย่างรหัสวิธีการแทรกฟิลด์ TC สามารถพบได้ในหัวข้อถัดไป</p> |

### สวิตช์ที่เกี่ยวข้องกับลักษณะที่ปรากฏ

| สวิตช์ | การบรรจุ |
| :- | :- |
| **Omit Page Numbers***(\Nสวิตช์)* | <p>สวิตช์นี้ใช้เพื่อซ่อนหมายเลขหน้าสำหรับบางระดับของTOC ตัวอย่างเช่นคุณสามารถกำหนด</p><p>```csharp{TOC \o "1-4" \n "3-4" }```</p><p>และหมายเลขหน้าในรายการของระดับ 3 และสี่จะถูกซ่อนไว้พร้อมกับจุดผู้นำ(ถ้ามี) เมื่อต้องการระบุเพียงหนึ่งระดับช่วงควรจะยังคงใช้ตัวอย่างเช่น"1-1"จะไม่รวมหมายเลขห การจัดหาช่วงระดับจะละเว้นหมายเลขหน้าสำหรับทุกระดับในTOC นี้จะเป็นประโยชน์ในการตั้งค่าเมื่อเอ็กซ์ปอร์ตเอกสารไปยังHTMLหรือรูปแบบที่คล้ายกัน นี้เป็นเพราะHTMLรูปแบบตามไม่ได้มีแนวคิดหน้าใดๆและจึงไม่จำเป็นต้องมีหมายเลขหน้าใดๆ</p><p>![table-of-contents-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-7.png)</p> |
| แทรกเป็นการเชื่อมโยงหลายมิติ *(สวิตช์\ชม.)* | <p>สวิตช์นี้ระบุว่า`TOC`รายการถูกแทรกเป็นไฮเปอร์ลิงค์ เมื่อดูเอกสารในMicrosoft Wordรายการเหล่านี้จะยังคงปรากฏเป็นข้อความปกติภายใน`TOC`แต่มีการเชื่อมโยงหลายมิติจึงสามารถใช้เพื่อนำทางไปยังตำแหน่งของรายการต้นฉบับในเอกสารโดยใช้*Ctrl + Left Click*ในMicrosoft Word ล่านี้จะถูกเก็บรักษาไว้ในรูปแบบอื่นๆ ตัวอย่างเช่นในHTMLรูปแบบรวมถึงEPUBและรูปแบบที่แสดงผลเช่นPDFและXPSจะถูกเอ็กซ์ปอร์ตเป็นลิงก์ที่ท โดยไม่มีชุดสวิตช์นี้,`TOC`ในเอาต์พุตทั้งหมดเหล่านี้จะถูกส่งออกเป็นข้อความธรรมดาและจะไม่แส ถ้าเอกสารถูกเปิดในMSคำข้อความของรายการจะไม่สามารถคลิกได้ด้วยวิธีนี้แต่หมายเลข</p><p>![tree-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-8.png)</p> |
| **Set Separator Character***(&#92;P สวิตช์)* | <p>สวิตช์นี้ช่วยให้เนื้อหาแยกชื่อเรื่องของรายการและหมายเลขหน้าได้อย่างง่ายดายในTOC ควรระบุตัวคั่นที่จะใช้หลังจากสวิตช์นี้และอยู่ในเครื่องหมายคำพูด ขัดกับสิ่งที่เป็นเอกสารในเอกสารสำนักงาน,เพียงหนึ่งอักขระสามารถใช้แทนถึงห้า. นี้ใช้กับทั้งMSคำและAspose.Words ไม่แนะนำให้ใช้สวิตช์นี้เนื่องจากไม่อนุญาตให้ควบคุมสิ่งที่ใช้เพื่อแยกรายการและหมายเลขหน้าในTOC แต่ขอแนะนำให้แก้ไขสไตล์ที่เหมาะสม`TOC`เช่น`StyleIdentifier.TOC1`และจากนั้นแก้ไขสไตล์ผู้นำที่มีการเข้าถึงสมาชิกแบบอักษรที่เฉพาะเจาะจงฯลฯ รายละเอียดเพิ่มเติมของวิธีการทำเช่นนี้สามารถพบได้ในภายหลังในบทความ</p><p>![list-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-9.png)</p> |
| **Preserve Tab Entries***(&#92;W สวิตช์)* | <p>การใช้สวิตช์นี้จะเป็นการระบุว่ารายการใดๆที่มีอักขระแท็บเช่นหัวข้อที่มีแท็บที่ท้ายบรรทัดจะถูกเก็บไว้เป็นอักขระแท็บที่เหมาะสมเมื่อเติมTOC ซึ่งหมายความว่าฟังก์ชันของอักขระแท็บจะถูกแสดงใน`TOC`และสามารถใช้ฟอร์แมตรายการได้ ตัวอย่างเช่นรายการบางรายการอาจใช้แท็บหยุดและอักขระแท็บเพื่อเว้นวรรคข้อความอ ตราบใดที่ระดับ`TOC`ที่สอดคล้องกันกำหนดแท็บเทียบเท่าหยุดแล้ว`TOC`รายการที่สร้างขึ้นจะปรากฏ ในสถานการณ์เดียวกันถ้าสวิตช์นี้ไม่ได้กำหนดแล้วอักขระแท็บจะถูกแปลงเป็นเทียบเท่าพื้น ผลลัพธ์จะไม่ปรากฏตามที่คาดไว้</p><p>![tab-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-10.png)</p> |
| **Preserve New Line Entries***(\สวิตช์ X)* | <p>คล้ายกับสวิตช์ด้านบนสวิตช์นี้ระบุว่าส่วนหัวที่ทอดผ่านหลายบรรทัด(โดยใช้อักขระบรรทัดใหม่ไม่ใช่ย่อหน้าแยกต่างหาก)จะถูกเก็บรักษาไว้ตามที่อยู่ในที่สร้างTOC หรือ`ControlChar.LineBreak`)เพื่อแยกเนื้อหาข้ามบรรทัดต่างกัน ด้วยสวิตช์นี้ที่ระบุไว้รายการใน`TOC`จะเก็บอักขระบรรทัดใหม่เหล่านี้ไว้ตามที่แสดงด้านล่าง ในสถานการณ์เช่นนี้ถ้าสวิทช์ไม่ได้กำหนดไว้แล้วอักขระบรรทัดใหม่จะถูกแปลงเป็นพื้นที่สีข</p><p>![tab-space-table-of-contents-field-aspose-words-java](/words/java/working-with-table-of-contents/how-to-insert-and-work-with-the-table-of-contents-field-11.png)</p> |

## แทรกฟิลด์TC

คุณสามารถแทรกฟิลด์TCใหม่ที่ตำแหน่งปัจจุบันของ`DocumentBuilder`โดยเรียกวิธีการ`DocumentBuilder.InsertField`และระบุชื่อฟิลด์เป็น"TC"พร้อมกับสวิทช์ใดๆที่จำเป็น.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการแทรกฟิลด์`TC`ลงในเอกสารโดยใช้[DocumentBuilder](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/).

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-tableofcontents-InsertTCField-InsertTCField.java" >}}

มักจะมีการกำหนดบรรทัดข้อความเฉพาะสำหรับ `TOC` และทำเครื่องหมายด้วยฟิลด์ `TC` วิธีง่ายๆ ในการทำเช่นนี้ใน Word MS คือ ไฮไลต์ข้อความแล้วกด *ALT+SHIFT+O* วิธีนี้จะสร้างฟิลด์ `TC` โดยอัตโนมัติโดยใช้ข้อความที่เลือก เทคนิคเดียวกันนี้สามารถทำได้โดยใช้โค้ด โค้ดด้านล่างนี้จะค้นหาข้อความที่ตรงกับอินพุตและแทรกฟิลด์ `TC` ในตำแหน่งเดียวกับข้อความ โค้ดนี้ใช้เทคนิคเดียวกับที่ใช้ในบทความ ตัวอย่างโค้ดต่อไปนี้จะแสดงวิธีค้นหาและแทรกฟิลด์ `TC` ในข้อความในเอกสาร.

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-tableofcontents-FindAndInsertATCField-InsertTCFieldHandler.java" >}}

## แก้ไขสารบัญ

### เปลี่ยนรูปแบบของรูปแบบ

การจัดรูปแบบของรายการใน`TOC`ไม่ได้ใช้สไตล์ดั้งเดิมของรายการที่ทำเครื่องหมายไว้แต่ละระดับจะถูกจัดรูปแบบโดยใช้สไตล์ที่เทียบเท่า`TOC` ตัวอย่างเช่นระดับแรกใน`TOC`ถูกจัดรูปแบบด้วยสไตล์**TOC1**ระดับที่สองจัดรูปแบบด้วยสไตล์**TOC2**และอื่นๆ ลี่ยนรูปลักษณ์ของ`TOC`ลักษณะเหล่านี้ต้องถูกแก้ไข ในAspose.Wordsลักษณะเหล่านี้จะแสดงโดยโลแคลอิสระ`StyleIdentifier.TOC1`ถึง`StyleIdentifier.TOC9`และสามารถดึงข้อมูลจากคอลเล็กชัน`Document.Styles`โดยใ.

เมื่อมีการดึงข้อมูลลักษณะที่เหมาะสมของเอกสารแล้วการจัดรูปแบบสำหรับลักษณะนี้สามา การเปลี่ยนแปลงลักษณะเหล่านี้จะปรากฏขึ้นโดยอัตโนมัติในTOCsในเอกสาร.

ตัวอย่างรหัสต่อไปนี้จะเปลี่ยนคุณสมบัติการจัดรูปแบบที่ใช้ในลักษณะระดับแรก`TOC`.

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-tableofcontents-ModifyATableOfContents-changeAFormattingPropertyUsedInFirstLevelTOCStyle.java" >}}

นอกจากนี้ยังเป็นประโยชน์ที่จะทราบว่าการจัดรูปแบบโดยตรงของย่อหน้า(ที่กำหนดไว้ในย่อหน้าเองและไม่ได้อยู่ในสไตล์)ที่ทำเครื่องหมายไว้ใน`TOC`จะถูกคัดลอกในรายการในTOC ตัวอย่างเช่นหากใช้สไตล์Heading 1เพื่อทำเครื่องหมายเนื้อหาสำหรับ`TOC`และสไตล์นี้มีการจัดรูปแบบตัวหนา รายการผลลัพธ์`TOC`จะไม่เป็นตัวหนาเนื่องจากเป็นส่วนหนึ่งของการจัดรูปแบบสไตล์แต่จะเอียงเนื่องจากมีการจัดรูปแบบโดยตรงในย่อหน้า.

นอกจากนี้คุณยังสามารถควบคุมการจัดรูปแบบของตัวคั่นที่ใช้ระหว่างแต่ละรายการและหม โดยค่าเริ่มต้น,นี้เป็นเส้นประที่กระจายไปทั่วไปยังหมายเลขหน้าโดยใช้อักขระแท็บและหยุด.

การใช้ชั้นเรียน`Style`ที่ดึงสำหรับระดับ`TOC`เฉพาะที่คุณต้องการปรับเปลี่ยนคุณยังสามารถปรับเปลี่ย.

เมื่อต้องการเปลี่ยนวิธีการนี้ปรากฏขึ้นในตอนแรก`Style.ParagraphFormat`ต้องถูกเรียกใช้เพื่อเรียกการจัดรูปแบบย่อหน้าสำหรับสไตล์ จากนี้แท็บหยุดสามารถเรียกดูได้โดยเรียก`ParagraphFormat.TabStops`และแท็บหยุดที่เหมาะสมแก้ไข ใช้เทคนิคเดียวกันนี้แท็บตัวเองสามารถย้ายหรือลบออกโดยสิ้นเชิง.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการปรับเปลี่ยนตำแหน่งของแท็บขวาหยุดในย่อหน้าที่เกี่ยวข้อง`TOC`.

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-tableofcontents-ModifyATableOfContents-modifyPositionOfRightTabStopInTOC.java" >}}

## นำสารบัญออกจากเอกสาร

สารบัญสามารถลบออกจากเอกสารโดยการลบโหนดทั้งหมดที่พบระหว่าง`FieldStart`และFieldEndโหนดของ`TOC`.

รหัสด้านล่างแสดงให้เห็นถึงนี้ การกำจัดของฟิลด์`TOC`จะง่ายกว่าฟิลด์ปกติเนื่องจากเราไม่ได้ติดตามเขตข้อมูลที่ซ้อนกัน แต่เราตรวจสอบ`FieldEnd`โหนดเป็นประเภท`FieldType.FieldTOC`ซึ่งหมายความว่าเราได้พบจุดสิ้นสุดของปัจจุบันTOC เทคนิคนี้สามารถใช้ในกรณีนี้โดยไม่ต้องกังวลเกี่ยวกับเขตข้อมูลที่ซ้อนกันใดๆที่เราสามารถสมมติว่าเอกสารใดๆที่เกิดขึ้นอย่างถูกต้องจะไม่มีเขตข้อมูลที่ซ้อนกันอย่างเต็มที่`TOC`ภายในอีกเขตข้อมูล`TOC`.

ประการแรก`FieldStart`โหนดของแต่ละ`TOC`จะถูกรวบรวมและเก็บไว้ จากนั้น`TOC`ที่ระบุจะถูกแจกแจงเพื่อให้โหนดทั้งหมดภายในฟิลด์ถูกเยี่ยมชมและเก็บไว้ จากนั้นโหนดจะถูกลบออกจากเอกสาร ตัวอย่างรหัสต่อไปนี้สาธิตวิธีการลบ`TOC`ที่ระบุจากเอกสาร.

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-tableofcontents-RemoveATableOfContents-RemoveATableOfContents.java" >}}

## สารสกัดจากสารบัญ

ถ้าคุณต้องการแยกสารบัญจากเอกสารคำใดๆสามารถใช้ตัวอย่างรหัสต่อไปนี้ได้.

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-tableofcontents-ExtractTableOfContents-ExtractTableOfContents.java" >}}
