easypoi模板导出word并且合并行

导出流程

引入依赖

xml 复制代码
<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-base</artifactId>
    <version>4.1.2</version>
</dependency>

制作模板

合并行是备注那一列,这一列因为各种列合并的关系,所以每一行所对应的所在列位置都不一样,这是个复杂的模板,如果列都在一个位置,那就更好操作,不用去判断了,下方的遍历判断就是为了找到列所在位置。

因为要导出多页所以用word。
模板提取码:cfmw

合并导出

关键代码:

单页导出:outputUrl是模板路径,map是导出需要用到的信息。

java 复制代码
 @Cleanup XWPFDocument xwpfDocument = WordExportUtil.exportWord07(outputUrl, map);

多页导出:

将上边单页的map自定义多个,每页的格式一样,内容可以不一样,如果不在乎格式,也可以用单页导出,让它根据内容多少自动扩展页数。

java 复制代码
@Cleanup XWPFDocument xwpfDocument = WordExportUtil.exportWord07(outputUrl, hashMaps);

合并行的关键代码:

java 复制代码
XWPFTableCell cell = row1.getCell(6);
//设置合并开始
 cell.getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.RESTART);
 //设置单元格居中,段落内容居左或右在模板里设置
 cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER);
 //设置合并后的内容,如果要合并后只展示一行内容或者自定义内容,就设置第一行的内容即可,还要把其他单元格内容清空,如果合并所有单元格内容,就不需要设置了
 cell.setText("必须做到稳固、定量、整理、方便和安全");

图示:

导出:

java 复制代码
//设置表格文件名字
String fileName = title;
fileName = URLEncoder.encode(fileName, "UTF8");
//设置返回数据类型
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".docx");
//将表格输出
@Cleanup OutputStream os = response.getOutputStream();
xwpfDocument.write(os);

完整代码

相关推荐
玩泥巴的1 天前
.NET驾驭Word之力:理解Word对象模型核心 (Application, Document, Range)
word·二次开发·office·com互操作
玩泥巴的2 天前
.NET驾驭Word之力:COM组件二次开发全攻略之连接Word与创建你的第一个自动化文档
word·二次开发·com互操作
辣香牛肉面3 天前
[Windows] 搜索文本2.6.2(从word、wps、excel、pdf和txt文件中查找文本的工具)
word·excel·wps·搜索文本
FlYFlOWERANDLEAF4 天前
DevExpress中Word Processing Document API学习记录
学习·c#·word
AnySpaceOne4 天前
PDF转Word在线转换教程:多种实用方法分享
学习·pdf·word
我命由我123456 天前
Word - Word 的 5 种视图(页面视图、阅读视图、Web 版式视图、大纲视图、草稿视图)
ui·word·excel·photoshop·表格·ps·美工
XYZLHL6 天前
Word怎么设置页码总页数不包含封面和目录页
word
传而习乎6 天前
Word添加图/表题注
word
YAY_tyy6 天前
基于 Vue3 + VueOffice 的多格式文档预览组件实现(支持 PDF/Word/Excel/PPT)
前端·javascript·vue.js·pdf·word·excel