Java 添加Word目錄的2種方法

目錄是一種能夠快速、有效地幫助讀者瞭解文檔或書籍主要內容的方式。在Word中,插入目錄首先需要設置相應段落的大綱級別,根據大綱級別來生成目錄表。本文中生成目錄分2種情況來進行:

1.文檔沒有設置大綱級別,生成目錄前需要手動設置

2.文檔已設置大綱級別,通過域代碼生成目錄

 

使用工具:Free Spire.Doc for Java 2.0.0 (免費版)

工具獲取途徑1:通過官網下載jar文件包,解壓並導入jar文件。

工具獲取途徑2:通過Maven倉庫導入到Maven項目中,參考導入方法

 

Java示例代碼(供參考)

【示例1】手動設置大綱級別並生成目錄

import com.spire.doc.*;
import com.spire.doc.documents.BuiltinStyle;
import com.spire.doc.documents.HorizontalAlignment;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.TextRange;
import java.awt.*;

public class AddToc {
    public static void main(String[]args){
        //加載測試文檔
        Document doc = new Document("test.docx");

        //在文檔最前面插入一個段落,寫入文本並格式化
        Paragraph parainserted = new Paragraph(doc);
        TextRange tr= parainserted.appendText("目 錄");
        tr.getCharacterFormat().setBold(true);
        tr.getCharacterFormat().setTextColor(Color.gray);
        doc.getSections().get(0).getParagraphs().insert(0,parainserted);
        parainserted.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
        
        //手動設置文檔中指定段落的大綱級別
        doc.getSections().get(0).getParagraphs().get(2).applyStyle(BuiltinStyle.Heading_1);
        doc.getSections().get(0).getParagraphs().get(3).applyStyle(BuiltinStyle.Heading_2);
        doc.getSections().get(0).getParagraphs().get(5).applyStyle(BuiltinStyle.Heading_2);
        doc.getSections().get(0).getParagraphs().get(7).applyStyle(BuiltinStyle.Heading_2);
        doc.getSections().get(0).getParagraphs().get(13).applyStyle(BuiltinStyle.Heading_2);
        doc.getSections().get(0).getParagraphs().get(14).applyStyle(BuiltinStyle.Heading_3);
        doc.getSections().get(0).getParagraphs().get(15).applyStyle(BuiltinStyle.Heading_3);

        //添加目錄
        doc.getSections().get(0).getParagraphs().get(0).appendTOC(1,3);

        //更新目錄表
        doc.updateTableOfContents();

        //保存文檔
        doc.saveToFile("AddToc.docx",FileFormat.Docx_2010);
    }
}

目錄生成效果:

 

【示例2】已設置大綱級別,通過域代碼直接生成目錄

import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.documents.HorizontalAlignment;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.TableOfContent;
import com.spire.doc.fields.TextRange;
import java.awt.*;

public class AddTOC2 {
    public static void main (String[] args){
        //加載已設置大綱級別的測試文檔
        Document doc = new Document("測試文件2.docx");

        //在文檔最前面插入一個段落,寫入文本並格式化
        Paragraph parainserted = new Paragraph(doc);
        TextRange tr= parainserted.appendText("目 錄");
        tr.getCharacterFormat().setBold(true);
        tr.getCharacterFormat().setTextColor(Color.gray);
        doc.getSections().get(0).getParagraphs().insert(0,parainserted);
        parainserted.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);

        //通過域代碼添加目錄表
        TableOfContent toc = new TableOfContent(doc, "{\\o \"1-3\" \\h \\z \\u}");
        doc.getSections().get(0).getParagraphs().get(0).appendTOC(1,3);
        doc.updateTableOfContents();

        //保存文檔
        doc.saveToFile("目錄2.docx", FileFormat.Docx_2010);
    }
}

目錄生成效果:

PS:關於通過域代碼生成目錄,可參考這篇文章,獲取更多目錄設置方法。

 

(本文完)

轉載請註明出處!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章