poi-tl 是Word模板引擎,使用Word模板和数据创建很棒的Word文档
poi-tl 使用文档地址
pom
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.10.0</version>
</dependency>
创建word 模板 例如
在模板里可以直接设置好{{}}的所需样式,也可以后续用代码设置修改样式。
Java 代码
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.data.Texts;
public class test {
public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-dd");
Map<String,Object> map = new HashMap<>();
map.put("test00", "这是本文标题");
//有样式的文本
map.put("test01",Texts.of("作者:刘七八").color("000000").create());
//超链接和锚点文本
map.put("link", Texts.of("本文链接").link("https://blog.csdn.net/my_batis/article/details/120410885").create());
map.put("test02",dateFormat.format(date));
map.put("test03","IT部测试是否会自动----------------------------------"
+ "------------------------------------------------------"
+ "----------------------------------------------------换行" );
map.put("test04","另一自然段" );
map.put("test05","姓名" );
map.put("test06","张三");
map.put("test07","李四" );
map.put("test08","职业" );
map.put("test09","散仙" );
map.put("test10","半仙" );
// // 指定图片路径
// map.put("image", "logo.png");
// // 设置图片宽高
// map.put("image1", Pictures.ofLocal("logo.png").size(120, 120).create());
// // 网络图片(注意网络耗时对系统可能的性能影响)
// map.put("urlImg", Pictures.ofUrl("http://deepoove.com/images/icecream.png")
// .size(100, 100).create());
// // svg图片
// map.put("svg", "https://img.shields.io/badge/jdk-1.6%2B-orange.svg");
XWPFTemplate template = XWPFTemplate.compile("D:\\workspace-eclipse\\SpringSecurity\\src\\main\\java\\com\\lpx\\doc\\test.docx").render(map);
try {
template.writeAndClose(new FileOutputStream("D:\\workspace-eclipse\\SpringSecurity\\src\\main\\java\\com\\lpx\\doc\\test1.docx"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}