本文讲解通过 WordGo
,生成word文件,并通过该项目实现,生成试卷 word 文件。
业务背景
一个试题库系统组卷功能,需要将获取到的试题,通过一定排版,生成word文件。通常来说我们可以通过freemark
模板引擎生成试卷,但是需要编写固定的模板文件,十分繁琐与麻烦,不够灵活。wordgo 是一个通过Java
实现的word文件生成工具。通过其提供的 API 方法,我们可以很便捷生成所需格式的 word 文件。
WordGo 介绍
WordGO - 让Java生成word文档更容易。更多API方法,请看官方项目文档。
导入
不知道为什么通过maven下载不了,我是通过jar包引入的。
- IDEA导入:点击
File-Project Structure
;然后在左侧找到Modules
并点击;最后在右侧点击绿色的+号,选择JARs or directories
选取要导入的jar包即可。 - Maven导入:添加下述maven依赖即可。
<dependency>
<groupId>com.github.qrpcode</groupId>
<artifactId>wordgo</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
常用 API 方法
// 设置word页面大小为 A3,纸张横向显示
WordPaper paper = new WordPaper("A3", true);
// 新建一个word
WordGo wordGo = new WordGo(paper);
// 添加文字,并设置文字样式
wordGo.add("Hello World", "font-size: 15; color: #FF0000");
// 添加文字,并设置文字样式,并在后面添加换行符
wordGo.addLine("Hello World", "font-size: 15; color: #FF0000");
// 生成文件,文件名必须以.docx结尾
wordGo.create("C:\\demo.docx");
生成试卷
数据表信息
question_single_choice
:单选题:question_multiple_choice
:多选题:question_case_father
:案例题(题干,一个案例题由多个小题组成)question_case_child
:案例题(小题)question_case_father_child_relation
:案例题(主题、子题关联)
生成单选题
private