96SEO 2026-02-23 15:14 6
xmlns="http://www.w3.org/2000/svg">
style="-webkit-tap-highlight-color:
class="toc">
在Java开发中,使用EasyPOI导出Word合同文档是一种高效且灵活的解决方案。
通过模板驱动的方式,开发者可以轻松地将动态数据填充到预设的Word模板中,生成格式规范的合同文件
。
这种方法特别适合需要批量生成标准化合同、协议或报告的场景。
使用easyPOI方式导出合同word文档。
前几篇文章,我们注重讲了使用EasyPoi操作Excel文件的详细流程,使用Word模板和Excel模板用法基本一致,支持的标签也是一致的,仅仅**支持07版本的word**也是只能生成后缀是docx的文档,本文我们就拿docx做导出功能,
id="2_10">2、导入依赖
版本兼容性
4.3.0及以上版本,旧版本可能不支持多图片循环导出等高级功能。
同时注意Spring
punctuation"><dependency
class="token
punctuation">>
punctuation"><
groupIdclass="token
punctuation">>
cn.afterturnclass="token
punctuation"></
groupIdclass="token
punctuation">>
punctuation"><
artifactIdclass="token
punctuation">>
easypoi-spring-boot-starterclass="token
punctuation"></
artifactIdclass="token
punctuation">>
punctuation"><
versionclass="token
punctuation">>
4.4.0class="token
punctuation"></
versionclass="token
punctuation">>
punctuation"></
dependencyclass="token
punctuation">>
id="3_23">
3、模板指令EasyPOI提供了丰富的模板指令,可以处理各种复杂的合同导出需求。
掌握这些指令能让你的合同文档更加灵活和强大。
下面列举下EasyPoi支持的指令以及作用,最主要的就是各种fe的用法:
punctuation">;yyyy-MM-dd
class="token
operator">&
NULLclass="token
operator">&
INDEXclass="token
指令 功能描述 合同应用示例 {{fe:resourceList }}
遍历列表数据创建行 合同条款列表、附件清单 {{fd:date;yyyy-MM-dd}} 格式化日期 合同签署日期、生效日期 {{fn:amount;.00}} 格式化数字 合同金额、违约金计算 {{if:condition}} 条件判断显示/隐藏 可选条款、特殊约定 {{}} 换行符 多行地址、条款换行 对于复杂的合同表格,可以使用{{fe:tableData}}指令动态生成多行数据。
例如在合同附件清单中,可以通过遍历List数据自动生成表格行,每行包含附件名称、编号、页数等信息。
4、制作模板
- 根据上述的指令要求,我们制作模板如下:
alt="在这里插入图片描述"
src="https://i-blog.csdnimg.cn/direct/a9ae3b58282d4d36a19e442633dd0246.png">
- 把制作好的模板放入到项目中
alt="在这里插入图片描述"
src="https://i-blog.csdnimg.cn/direct/3746011f38ae4b78bdf7bc4641b63fdb.png">
id="51UserController_68">
5.1、UserController修改原来的导出合同的方法:
punctuation">@GetMapping
class="token
string">"/downloadContract"
class="token
function">downloadContract
class="token
class-name">HttpServletResponse
response
class-name">Exception
class="token
userService.downloadContract(id,response);
userService
function">downloadContractWithEasyPOI
class="token
punctuation">,
responseclass="token
punctuation">}
id="52IUserService_78">
5.2、IUserService
function">downloadContractWithEasyPOI
class="token
class-name">HttpServletResponse
response
class-name">Exception
class="token
punctuation">;
id="53UserServiceImpl_82">
5.3、UserServiceImpl
function">downloadContractWithEasyPOI
class="token
class-name">HttpServletResponse
response
class-name">ResourceUtils
class="token
string">"classpath:"
class="token
comment">//SpringBoot项目获取根目录的方式
punctuation">(
rootPathclass="token
function">getAbsolutePath
class="token
string">"/word_template/contract_template2.docx"
class="token
class-name">SimpleDateFormat
simpleDateFormat
class-name">SimpleDateFormat
class="token
string">"yyyy-MM-dd"
class="token
punctuation">>
params
class-name">HashMap
class="token
punctuation">>
class="token
punctuation">;
paramsclass="token
function">getUserName
class="token
punctuation">;
paramsclass="token
punctuation">,
simpleDateFormatclass="token
function">getHireDate
class="token
punctuation">;
paramsclass="token
function">getAddress
class="token
punctuation">>
resourceList
class-name">ArrayList
class="token
punctuation">>
class="token
punctuation">>
map
function">getResourceList
class="token
class-name">HashMap
class="token
punctuation">>
class="token
punctuation">,
resourceclass="token
punctuation">,
resourceclass="token
string">"needReturn"
class="token
punctuation">,
resourceclass="token
function">getNeedReturn
class="token
class-name">ImageEntity
class="token
punctuation">;
imageclass="token
function">setHeight
class="token
punctuation">;
imageclass="token
punctuation">;
imageclass="token
punctuation">(
rootPathclass="token
operator">+
resourceclass="token
punctuation">,
imageclass="token
punctuation">;
resourceListclass="token
把组建好的表格需要的数据放到大map中
paramsclass="token
string">"resourceList"
class="token
punctuation">,
resourceListclass="token
class-name">XWPFDocument
xwpfDocument
class-name">WordExportUtil
class="token
function">exportWord07
class="token
punctuation">(
templatePathclass="token
function">getUserName
class="token
class-name">ServletOutputStream
outputStream
function">getOutputStream
class="token
punctuation">;
responseclass="token
function">setHeader
class="token
string">"Content-Disposition"
class="token
string">"attachment;filename="
punctuation">(
filenameclass="token
string">"ISO8859-1"
class="token
punctuation">;
responseclass="token
function">setContentType
class="token
string">"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
class="token
punctuation">;
xwpfDocumentclass="token
punctuation">(
outputStreamclass="token
punctuation">}
function">selectById
class="token
class-name">Resource
class="token
punctuation">>
resources
function">selectList
class="token
class-name">QueryWrapper
class="token
class-name">Resource
class="token
punctuation">>
class="token
function">setResourceList
class="token
punctuation">(
resourcesclass="token
punctuation">}
id="6_141">
6、导出结果
alt="在这里插入图片描述"
src="https://i-blog.csdnimg.cn/direct/b9c32cd63deb4cbfa62353b74d082961.png">
说明:
- 使用.docx格式:模板必须保存为.docx格式(Word
2007+),不支持旧的.doc格式;
- 占位符格式:严格使用{{变量名}}格式,前后不能有空格;
- 复杂表格处理:对于动态行表格,在模板中只需设计一行,EasyPOI会自动复制并填充数据;
- 图片导出:如果需要导出合同中的公司logo或签名图片,使用ImageEntity类进行配置。
alt="在这里插入图片描述"
src="https://i-blog.csdnimg.cn/direct/7d1b346b824f44e2b63ba317a83568b2.jpeg#pic_center">
“人的一生会经历很多痛苦,但回头想想,都是传奇”。
class="post-meta-container">
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback