主要观点:本文提供关于 Word DOCX 表单的背景知识,讨论如何在 Java 中以编程方式从已完成的 DOCX 表单中提取表单值(表单响应),包括表单在 DOCX 文件结构中的存储方式及对编程提取的影响,还介绍了在 Java 中构建快速 DOCX 表单值检索工作流可使用的不同 API。
关键信息:
- DOCX 格式可在模板表单文档中构建自定义表单字段,开发者模式启用时可用,管理员可共享表单收集信息,提交响应后可保存并提取响应内容。
- DOCX 文件结构为一系列压缩的 XML 文件,可通过特定路径提取所需内容,表单字段以“内容控件”形式表示,在
word/document.xml
文件的<w:sdt>
元素中,包含各种属性和实际内容。 - 自动化获取 DOCX 表单内容相对简单,可使用 Apache POI 或免费 Web API,Apache POI 可用
XWPFDocument
类等操作,Web API 需安装 SDK 并进行配置和授权后调用editDocumentDocxGetFormFields
方法获取响应。
重要细节: - Apache POI 中
XWPFSDT
类可检索<w:sdt>
元素,isChecked()
用于复选框字段,getText()
用于文本字段。 - Web API 安装 SDK 时在
pom.xml
或build.gradle
中添加相应仓库和依赖,配置和授权需设置 API 密钥,调用editDocumentDocxGetFormFields
方法可获取响应,响应模型包含ContentControls
和HandlebarFormFields
数组,本文只关注ContentControls
值,其用于存储表单字段值,双花括号结构的HandlebarFormFields
用于程序文本替换工作流。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。