近年來,動態生成 Word 文檔已成為編寫報告、報價單、發票和其他類型文檔的流行功能。各種製造公司根據存儲在數據庫中的數據生成發票。在這種情況下,文檔自動化可以節省手動文檔創建過程所需的時間、精力和資源。本文旨在以文檔自動化過程為目標,讓您了解如何在 Java 中以編程方式創建 Word 文檔。
用於創建 Word 文檔的 Java API
在本文中,我們將使用 Aspose.Words for Java,這是一個功能豐富的 API,可以在基於 Java 的應用程序中創建、編輯或轉換 Word 文檔。您可以下載 API 的 JAR 或使用以下 Maven 配置安裝它:
存儲庫:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
依賴:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>20.2</version>
<classifier>jdk17</classifier>
</dependency>
在以下部分中,您將學習如何使用 Java 以編程方式創建包含文本、段落、表格、列表、圖像等不同元素的 Word 文檔。
使用 Java 創建 Word 文檔
大多數時候,Word文檔中有相當一部分內容是基於文本的。因此,我們將通過創建一個帶有標題和段落的 Word 文檔來開始我們的旅程。以下是創建Word文檔的步驟:
- 首先,創建一個 Document 類的實例。
- 創建一個 DocumentBuilder 對象並使用 Document 對像對其進行初始化。
- 使用 Font 類並設置字體大小、字體系列等。
- 使用 ParagraphFormat 類設置段落的屬性。
- 使用 DocumentBuilder.write() 方法將文本寫入文檔。
- 最後,調用 Document.save() 方法創建文檔。
以下代碼示例顯示瞭如何使用 Java 創建包含文本的 Word 文檔。
// 創建文檔對象
Document doc = new Document();
// 創建一個 DocumentBuilder 對象
DocumentBuilder builder = new DocumentBuilder(doc);
// 指定字體格式
Font font = builder.getFont();
font.setSize(18);
font.setBold(true);
font.setColor(Color.BLACK);
font.setName("Arial");
builder.write("How to Create a Rich Word Document?");
builder.insertBreak(BreakType.LINE_BREAK);
// 開始段落
font.setSize(12);
font.setBold(false);
ParagraphFormat paragraphFormat = builder.getParagraphFormat();
paragraphFormat.setFirstLineIndent(12);
paragraphFormat.setKeepTogether(true);
builder.write("This article shows how to create a Word document containing text, images and lists.");
// 保存文檔
doc.save("Rich Word Document.docx");
輸出
使用 Java 創建一個包含表格的 Word 文檔
Word 文檔中的表格用於以行和列的形式組織內容。在本節中,我們將創建一個包含兩行和兩列的簡單表格。創建表包括四個基本操作:
- 啟動表
- 插入單元格
- 結束行
- 結束表
下面是使用Java在Word文檔中創建表格的步驟:
- 首先,創建 Document 和 DocumentBuilder 類的對象。
- 使用 Table 類創建一個表。
- 使用 DocumentBuilder.insertCell() 方法插入一個單元格。
- 根據您的要求設置表的屬性。
- 使用 DocumentBuilder.write() 方法將文本添加到單元格。
- 分別使用 DocumentBuilder.endRow() 和 DocumentBuilder.endTable() 方法結束行和表。
- 最後,保存文檔。
以下示例演示如何在 Word 文檔中創建表格。
// 創建文檔對象
Document doc = new Document();
// 創建一個 DocumentBuilder 對象
DocumentBuilder builder = new DocumentBuilder(doc);
// 創建表
Table table = builder.startTable();
// 插入單元格
builder.insertCell();
table.autoFit(AutoFitBehavior.AUTO_FIT_TO_WINDOW);
builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER);
builder.write("This is Row 1 Cell 1");
builder.insertCell();
builder.write("This is Row 1 Cell 2");
// 結束行
builder.endRow();
// 開始下一行並設置其屬性
builder.getRowFormat().setHeight(100);
builder.getRowFormat().setHeightRule(HeightRule.EXACTLY);
builder.insertCell();
builder.write("This is Row 2 Cell 1");
builder.insertCell();
builder.write("This is Row 2 Cell 2");
builder.endRow();
// 茶几
builder.endTable();
// 保存文檔
doc.save("Rich Word Document.docx");
輸出
使用 Java 在 Word 文檔中創建列表
以下是將列表添加到 Word 文檔的步驟。
- 首先,創建一個 Document 類的對象。
- 使用 Document.getLists().add() 方法將所需類型的列表添加到文檔中。
- 將文檔中的列表放入 List 對像中。
- 使用 DocumentBuilder 對象填充列表。
- 最後,保存文檔。
以下代碼示例顯示瞭如何使用 Java 在 Word 文檔中創建列表。
// 創建文檔對象
Document doc = new Document();
doc.getLists().add(ListTemplate.BULLET_CIRCLE);
List list = doc.getLists().get(0);
// 設置為 true 以指定列表必須在每個部分重新啟動。
list.isRestartAtEachSection(true);
DocumentBuilder builder = new DocumentBuilder(doc);
builder.getListFormat().setList(list);
for (int i = 1; i < 45; i++) {
builder.writeln(String.format("List Item " + i));
// 插入分節符。
if (i == 15)
builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE);
}
builder.getListFormat().removeNumbers();
// 保存文檔
doc.save("Rich Word Document.docx");
輸出
使用 Java 在 Word 文檔中插入圖像
將圖片插入到Word文檔中就像餅圖一樣簡單。以下是執行此操作的一些簡單步驟:
- 首先,創建一個 Document 類的對象。
- 創建一個 DocumentBuilder 類的對象並使用 Document 對像對其進行初始化。
- 使用 DocumentBuilder.insertImage() 方法插入圖像。
- 最後,保存文檔。
以下代碼示例顯示瞭如何使用 Java 將圖像插入到 Word 文檔中。
// 創建文檔對象
Document doc = new Document();
// 創建文檔生成器
DocumentBuilder builder = new DocumentBuilder(doc);
// 插入圖片
builder.insertImage("aspose-words.png");
// 保存文檔
doc.save("Rich Word Document.docx");
輸出
結論
在本文中,您學習瞭如何使用 Java 以編程方式創建豐富的 Word 文檔。此外,代碼示例還展示瞭如何向 Word 文檔添加文本、表格、圖像和列表。您可以閱讀更多了解如何使用 Aspose.Words for Java 將各種元素插入到 Word 文檔中。
免費試用 Aspose.Words for Java
您可以獲得免費的臨時許可 來嘗試使用 Aspose.Words for Java,而沒有試用限制。