1 Star 0 Fork 7

user_1682423 / wordexport

forked from 肥树 / wordexport 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 3.84 KB
一键复制 编辑 原始数据 按行查看 历史
肥树 提交于 2020-08-14 12:44 . 最新说明

咨询了两位同事,其他项目上用到了word生成和导出,结合资料和自己的试验,技术上是可行的。主要是使用了freemarker模板填充占位符的方式来生成word文档,支持跨平台。

实现步骤

1 doc文件生成

1.1 模板制作

1.2 工程创建

  • 1.2.1 创建springboot工程
  • 1.2.2 在pom.xml中添加freemarker依赖及springboot相关依赖
  • 1.2.3 在src/main/resources下创建文件目录templates
  • 1.2.4 将前面制作好的模板放到templates目录下
  • 1.2.5 开始编码、测试

2 docx文件生成

2.1 模板制作

  • 制作docx文件模板的详细步骤可参考 java利用Freemarker模板生成docx格式的word文档这篇文章
  • 生成内容为表格文本的docx文件的详细步骤可参考 java利用Freemarker模板生成docx格式的word文档(全过程)这篇文章。这篇文章参考了上面这篇文章,所以实现的步骤差不多一样。
  • 简单来说docx模板制作主要分为三步:
  • 1 将docx扩展名改为zip
  • 2 打开zip并拷贝并另存为压缩包中word/document.xml文件
  • 3 修改拷贝出的xml内容使之符合freemarker解析规范,并将xml扩展名改为ftl
  • 4 将document.ftl与zip包放到代码工程的静态资源路径下
  • docx模板使用注意事项:
  • 1 zip包为原docx文件的zip包,不要将修改后的document.xml覆盖替换原文件
  • 2 一个docx文件只对应一个document.ftl,所以有多个docx文件时,注意模板名称不要重复

2.2 工程创建

  • 2.2.1 创建springboot工程
  • 2.2.2 在pom.xml中添加freemarker依赖及springboot相关依赖
  • 2.2.3 在src/main/resources下创建文件目录templates
  • 2.2.4 将前面制作好的模板document.ftl与zip包放到templates目录下
  • 2.2.5 开始编码、测试

3 示例代码

事项说明

  • 目前仅测试了扩展名为doc及docx且内容为表格文本的word文件的生成,没有对图片、超链接等进行测试验证
  • 使用freemarker模板生成word文件,前提是需要制作好模板,根据使用场景不同来填充不同模板生成word文档
  • 不同与其他项目中将生成的word文件先上传到mongodb再根据fileId下载文件的方式,我自己编写的代码是访问时直接下载,并没有将word文档存储到mongodb。具体采用哪种方式可以根据实际需求来进行选择

参考资料

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/AWenGe/wordexport.git
git@gitee.com:AWenGe/wordexport.git
AWenGe
wordexport
wordexport
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891