Closed Sayi closed 3 years ago
有没有循环语法,多行数据填充的方式有哪些?
@OlnyBigRoc TableRenderData.datas属性或者自定义处理
为什么没有找到设置字体的方法
@OlnyBigRoc 设置字体目前只能自定义调用POI的API了,下个版本会加上这个功能。
大佬这种表头怎么写 就是怎么使用java代码来写
java.lang.ClassCastException: org.openxmlformats.schemas.wordprocessingml.x2006.main.impl.DocumentDocumentImpl cannot be cast to org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl
这个文档怎么渲染
:warning: 这里是旧版1.2.0文档,最新文档参见http://deepoove.com/poi-tl/
表格模板
poi-tl默认实现了N行N列的样式(如下图),同时提供了当数据为空时,展示一行空数据的文案(如下图中的No Data Descs)。
在poi-tl的1.2.0版本中,表格模板语法是#,数据结构是com.deepoove.poi.data.TableRenderData。
具体Java代码参考:
表格的宽度怎么定义的
是一个点的二十分之一,或者是1440分之一英寸。官方解释如下:
抛开对这个单位理解的难度,我们最常见的应该是宽度自适应和宽度最大。 如果在poi-tl中设置了width=0,则表格是宽度自适应的。 以A4纸为例,页面宽度为21cm,左右页边距各位3.17cm,则表格的width=(21-3.172)/2.541440,大约为8310。
合并单元格
但是,很多业务场景并不仅限于如此简单的表格布局,产品需求总是丰富多彩的。poi-tl对XWPFDocument进行了封装,增强实现了一些基本功能。在
com.deepoove.poi.NiceXWPFDocument
中提供了合并的功能。自定义表格之新建表格
我们完全可以从无到有去创建一个新的表格。
新建MyTableRenderPolicy.java,实现
RenderPolicy
接口至此,我们持有了NiceXWPFDocument和XWPFRun对象,可以插入表格,合并单元格等操作。
自定义表格之动态处理已有表格
对于事先已知道部分表格样式,我们只需要处理剩余部分的表格可以采用此方式。
比如下图,我们在模板中设计好表格头和表格未的样式,表格中间的数据则可以动态处理。
新建MyTableRenderPolicy.java,继承
DynamicTableRenderPolicy
。至此,我们可以通过XWPFTable对象对表格进行删除行列、增加行列、设置文字等操作。
More
有时间的话,会对表格的API作一次优化。