1 Star 0 Fork 7

limian1985 / wordexport

forked from SeanStewart / wordexport 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

咨询了两位同事,其他项目上用到了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。具体采用哪种方式可以根据实际需求来进行选择

参考资料

MIT License Copyright (c) 2020 肥树 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

JAVA生成并导出Word文档技术论证 展开 收起
Java
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/limian1985/wordexport.git
git@gitee.com:limian1985/wordexport.git
limian1985
wordexport
wordexport
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891