java基于poi-tl实现生成文档的功能(二)

更新时间:2023-06-02 02:42:49 阅读: 评论:0

java基于poi-tl实现⽣成⽂档的功能(⼆)2.3 表格
表格⼀般使⽤{{#参数值}}表⽰,这些和前⾯基本是⼀样的
focuson
2.3.1 ⽂本插⼊
如果你的某⼀⾏全是⽂本,可以使⽤
RowRenderData row1 = ate("名称","类型");
如果需要空⾏,使⽤null代替;
RowRenderData row1 = ate("名称",null,"类型",null);
这种在名称列、类型列后分别会插⼊⼀列空⽩数据;
凄凉的反义词
2.3.2 图⽚插⼊
家园联系栏内容在官⽅⽂件中看到,rows -> cells ->paragraphs -> contents ,contents 就是我们插⼊的类型;
CellRenderData cell = new CellRenderData();
ParagraphRenderData graph1 = new ParagraphRenderData();
graph1.addPicture(new PictureRenderData(500,300,PictureType.JPEG,bufferedImage1));
cell.addParagraph(graph1);
如果这⼀⾏还想插⼊其他的内容,多创建⼏个cell,ParagraphRenderData,例如
CellRenderData cell2 = new CellRenderData();
CellRenderData cell3 = new CellRenderData();
ParagraphRenderData graph2 = new ParagraphRenderData();
ParagraphRenderData graph3 = new ParagraphRenderData();
graph2.addText("名称");
graph3.addText("数量");
cell2.addParagraph(graph2);
cell3.addParagraph(graph3);
最后统⼀添加的ROWS对象中。田园薯片
RowRenderData row0 = ate(cell,cell1,cell2);
2.3.3 单元格合并
创建合并规则
MergeCellRule rule = MergeCellRule.builder().map(Grid.of(0, 2),Grid.of(7, 2)).build();
上⾯是我的⽰例,将0⾏第2列到第7⾏第2列合并;
如果你的单元格有多次合并,⽐如你除了需要将0⾏第2列到第7⾏第2列合并外,还需要将第0⾏第1列到第4⾏第1列合并,那么
爽朗的近义词你可以继续添加map条件,⽐如:
MergeCellRule rule = MergeCellRule.builder().
map(Grid.of(0, 1),Grid.of(4, 1)).
map(Grid.of(0, 2),Grid.of(7, 2)).build();
如果你需要多⾏多列合并,⽐如第1⾏3-7列和第3⾏的3-7列合并,你应该这样写:
MergeCellRule rule = MergeCellRule.builder().map(Grid.of(1, 3),Grid.of(3, 7)).build();
map⾥⾯类似于你的坐标,从你的起点到终点就⾏。
最后放到数组⾥,key值需要和你模板的参数值对应
重生之强制结合dataMap.put("alarm_data",Tables.of(row0,row1,row2).mergeRule(rule).create());
入耳2.3.4 ⾃定义列宽
tableStyle是表格整体宽度,14.63f是A4纸标准宽度,colWidths就是每列的列宽。默认是平均分配。在Tables.java的源码中有这样两个函数,⼀个是根据double类型,⼀个是String类型
double就是根据你纸张的具体宽度设计;String按照⽐例,我这⾥是调⽤String类型的函数
int[] width = {10,20,70};
dataMap.put("alarm_data",Tables.of(row0,row1,row2,row3).percentWidth("100%",width).mergeRule(rule).create());
你有⼏列,数组的⼤⼩就是多少。String传参固定为"100%",我这个例⼦是三列,⽐例是1:2:7
另外数组的值相加必须100,否则会报异常
三、⽣成⽂件
XWPFTemplate render = der(dataMap);
try {
render.writeAndClo(new FileOutputStream("⽂件名.docx"));
} catch (IOException e) {
e.printStackTrace();
}
到这⾥⽣成⽂件的功能就完成了,有兴趣的⼩伙伴可以留⾔⼀起交流交流
无源音箱

本文发布于:2023-06-02 02:42:49,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/964308.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:宽度   合并   添加   类型   数组   完成   兴趣
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图