Java 是一种非常流行的计算机语言,用于自动创建和操作 Microsoft Word 文档(DOC、DOCX)。作为 Java 程序员,您可以使用各种 Java 库编写代码以编程方式生成、更改和保存 Word 文档。当您执行报告、创建发票或处理大量数据等操作时,这可以节省时间和精力。此外,由于其平台独立性,Java 是跨各种操作系统自动化文档的可行替代方案。在本文中,我们将解释如何使用 Java 从 Word 文档创建和获取表单域。
本文将涵盖以下几点:
- 安装Java Word自动化库
- 使用 Java 在 Word 文档中创建表单字段
- 在 DOC/DOCX 中添加输入文本字段
- 在 DOC/DOCX 文件中插入下拉菜单
- 在Word(DOC/DOCX)文档中创建复选框
- 使用Java从Word文档中获取表单域
Java Word 自动化库 - 安装
我们将使用 Conholdate.Total for Java 来自动化 MS Word 文档。这个Java Word 自动化库的安装过程非常简单。 Maven 用户只需在项目的 pom.xml 文件中包含以下配置即可。
<repository>
<id>ConholdateJavaAPI</id>
<name>Conholdate Java API</name>
<url>https://releases.conholdate.com/java/repo</url>
</repository>
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>23.2</version>
<type>pom</type>
</dependency>
然后执行以下命令。
mvn clean
mvn install -U
要设置其他 Java 框架,请访问 releases.conholdate.com。
Java Word 自动化:在 Word 文档中创建表单域
表单是具有填充空白(字段)的文档。使用 Microsoft Word,您可以设计一个带有下拉列表的注册表单,用户可以从中选择条目。表单字段用于保存特定类型的数据,例如姓名或地址。文本输入、组合框和复选框是 Microsoft Word 中表单域的示例。在以下小节中,我们将解释如何使用 Java 自动创建 Word 文档以创建表单域。
使用 Java 在 Word 文档中创建输入文本字段
在本小节中,您将学习如何使用 Java 在 Word 文档 (DOC/DOCX) 中创建输入文本字段。请按照以下步骤操作:
- 首先,创建一个Document类的对象。
- 然后,创建一个DocumentBuilder类的对象并用Document对象初始化它。
- 之后,使用 DocumentBuilder.insertTextInput 方法添加一个文本输入字段。
- 最后,保存文档。
以下代码示例演示了如何使用 Java 在 Word 文档中插入输入文本字段。
// Create document | |
Document doc = new Document(); | |
// Initiallize document builder | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Add text input | |
builder.insertTextInput("TextInput", TextFormFieldType.REGULAR, "", "Enter your name here", 30); | |
// Save the resultant docx | |
doc.save("output.docx"); |
使用 Java 在 Word 文档中添加下拉菜单
本小节将解释如何使用 Java 在 Word 文档 (DOC/DOCX) 中创建下拉菜单。
步骤如下:
- 首先初始化Document类的对象。
- 其次,实例化DocumentBuilder对象类的一个对象。
- 第三,使用 DocumentBuilder.insertComboBox 方法插入一个下拉字段。
- 最后,保存文档。
以下代码示例演示了如何使用 Java 在 Word 文档中插入下拉列表。
// Create document | |
Document doc = new Document(); | |
// Initiallize document builder | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Add drop down | |
String[] items = { "– Select your favorite footwear –", "Sneakers", "Oxfords", "Flip-flops", "Other" }; | |
builder.insertComboBox("DropDown", items, 0); | |
// Save the resultant docx | |
doc.save("output.docx"); |
使用 Java 在 Word 文档中插入复选框
在这里,您将学习如何使用 Java 在 MS Word 文档中插入复选框。
请按照以下步骤编写代码:
- 首先,创建Document类的对象。
- 然后,创建一个DocumentBuilder对象并用Document对象初始化它。
- 之后,使用 DocumentBuilder.insertCheckBox 方法创建一个复选框字段。
- 最后,保存文档。
以下代码示例演示了如何使用 Java 在 Word 文档中创建复选框。
// Create document | |
Document doc = new Document(); | |
// Initiallize document builder | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Add check box | |
builder.insertCheckBox("CheckBox", true, true, 0); | |
// Save the resultant docx | |
doc.save("output.docx"); |
使用 Java Word 自动化库从 Word 文档中获取表单字段
到目前为止,您已经学习了如何使用 Java 在 Word 文档中添加不同的表单域。在本节中,我们将解释如何使用 Java 获取 Word 文件的表单域。
假设我们有一个包含 4 个表单域的文件。下面我们来学习如何获取字段集合,以及如何通过名称或索引获取字段。请按照下面给出的分步指南进行操作:
- 首先,使用Document类加载Word文档。
Document doc = new Document("FormFields.doc");
- 获取可以使用Range.getFormFields方法检索的FormFieldCollection类的对象。
FormFieldCollection formFields = doc.getRange().getFormFields();
- 要通过索引获取特定字段,您可以使用 FormFieldCollection 的 get(int index) 方法检索 FormField 类的对象。
FormField formField1 = documentFormFields.get(3);
- 同样,您可以使用FormFieldCollection的重载get(string name)方法通过名称获取FormField类的对象。
FormField formField2 = documentFormFields.get("Text2");
以下代码示例总结了上述所有步骤。
// Create document | |
Document doc = new Document(); | |
// Get the form fields | |
FormFieldCollection formFields = doc.getRange().getFormFields(); | |
// Obtain form field by index | |
FormField formField1 = documentFormFields.get(3); | |
// Get the form field by name | |
FormField formField2 = documentFormFields.get("Text2"); | |
// Print the name of form field | |
System.out.println("Name: " + formField2.getName()); |
获得免费许可证
您可以下载 免费临时许可证 来测试没有评估限制的 API。
加起来
在本文中,我们解释了如何使用 Java 在 MS Word 文档中获取和创建表单域。我们已经讨论了在 DOC/DOCX 文件中添加文本输入、下拉和复选框字段的步骤。最后,我们讨论了从 Word 文档中获取表单域的步骤。
要了解有关 Java Word 自动化库 的更多信息,您可以访问 文档。
最后,请继续访问 conholdate.com 以获取定期更新。
问一个问题
请随时在我们的论坛 中发表您的问题或意见。