虽然 Apache POI 是非常强大的针对 Microsoft Office 读写的工具,但是其太过于复杂,往往不太好编写代码,且编写出的代码不宜维护(也可能只是网上大家分享的代码大多都不好好整理的原因)。所以在导出读取 Excel 方面有阿里简化后的 easyexcel 可供使用,关于导出 word 我们可以使用 freemarker 模板引擎。
1、在 springboot 项目中添加 freemarker 的依赖
org.springframework.boot
spring-boot-starter-freemarker
2、使用 word 做一个你需要的文件模板,并将其中需要改变的部分编程变量(注:图片建议先贴上大小相等的其他图片),类似下面:
test.docx
3、制作完成之后,将其另存为xml格式
test.docx 转存 xml 格式
4、将转存的 xml 文件使用文本编辑器例如 notepad++ 等打开,将其中红色区域的删除掉,那些是图片的base64编码后的信息,然后替换为一个图片变量,传入新的图片的 base64 编码即可导出你所要的图片,一般来说导出的图片都是由前台 echarts 等工具生成的。