您的位置:首页 > 财经 > 金融 > 培训网站图片_鞍山信息港便民信息_上海优化seo公司_百度新闻头条

培训网站图片_鞍山信息港便民信息_上海优化seo公司_百度新闻头条

2024/12/27 9:30:05 来源:https://blog.csdn.net/weixin_39789340/article/details/144728974  浏览:    关键词:培训网站图片_鞍山信息港便民信息_上海优化seo公司_百度新闻头条
培训网站图片_鞍山信息港便民信息_上海优化seo公司_百度新闻头条

poi-tl 是一个基于 Apache POI 的Word模板引擎,也是一个免费开源的 Java 库,用于简化和加速基于Word模板生成文档的过程,可以非常方便的加入到项目中。
它支持文本、图片、表格和列表等标签替换,提供友好的API。相比其他模板引擎,poi-tl具有更好的样式保留和易用性,使用过程中只需要设置模板、构建好数据,即可以方便地填充数据并输出到文件。这种方式不仅提高了开发效率,还保证了输出文件的一致性和格式美观性。

○ 优势

方案移植性功能性易用性
Poi-tlJava跨平台Word模板引擎,基于Apache POI,提供更友好的API低代码,准备文档模板和数据即可
Apache POIJava跨平台Apache项目,封装了常见的文档操作,也可以操作底层XML结构文档不全,可以参考文档地址:https://deepoove.com/poi-tl/apache-poi-guide.html
FreemarkerXML跨平台仅支持文本,很大的局限性不推荐,XML结构的代码几乎无法维护
OpenOffice部署OpenOffice,移植性较差-需要了解OpenOffice的API
HTML浏览器导出依赖浏览器的实现,移植性较差HTML不能很好的兼容Word的格式,样式糟糕-
Jacob、winlibWindows平台-复杂,完全不推荐使用

○ 主要功能点

Word模板引擎功能描述
文本将标签渲染为文本
图片将标签渲染为图片
表格将标签渲染为表格
列表将标签渲染为列表
图表条形图(3D条形图)、柱形图(3D柱形图)、面积图(3D面积图)、折线图(3D折线图)、雷达图、饼图(3D饼图)、散点图等图表渲染
If Condition判断根据条件隐藏或者显示某些文档内容(包括文本、段落、图片、表格、列表、图表等)
Foreach Loop循环根据集合循环某些文档内容(包括文本、段落、图片、表格、列表、图表等)
Loop表格行循环复制渲染表格的某一行
Loop表格列循环复制渲染表格的某一列
Loop有序列表支持有序列表的循环,同时支持多级列表
Highlight代码高亮word中代码块高亮展示,支持26种语言和上百种着色样式
Markdown将Markdown渲染为word文档
Word批注完整的批注功能,创建批注、修改批注等
Word附件Word中插入附件
SDT内容控件内容控件内标签支持
Textbox文本框文本框内标签支持
图片替换将原有图片替换成另一张图片
书签、锚点、超链接支持设置书签,文档内锚点和超链接功能
Expression Language完全支持SpringEL表达式,可以扩展更多的表达式:OGNL, MVEL…
样式模板即样式,同时代码也可以设置样式
模板嵌套模板包含子模板,子模板再包含子模板
合并Word合并Merge,也可以在指定位置进行合并
用户自定义函数(插件)插件化设计,在文档任何位置执行函数

○ 快速开始

  • 引入依赖
<dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.12.2</version>
</dependency>
  • 文本输出案例
1.创建一个新的文档 template.docx,其中包含内容 {{title}}
2.TDO 模式:模板 + 数据模型 = 输出
// 核心 API 设计简洁,只需要一行代码
XWPFTemplate.compile("template.docx").render(new HashMap<String, Object>(){{put("title", "poi-tl 模板引擎");
}}).writeToFile("out_template.docx");3. 准备数据
put("name", "刘亦菲");
put("thing", "chocolates");4. 模板内容:
{{name}} 总说生活就像一盒 {{thing}}5. 输出:
刘亦菲 总说生活就像一盒 chocolates。
  • 图片输出案例
图片标签以 @ 开头,例如: 
{{@logo}} 会在数据模型中查找键名为 logo 的值,然后用图片替换这个标签。
图片标签的数据可以是简单的 URL 或路径字符串,也可以是一个包含图像宽度和高度的结构。1. 数据:
put("watermelon", "assets/watermelon.png");
put("watermelon", "http://x/lemon.png");
put("lemon", Pictures.ofLocal("sob.jpeg", PictureType.JPEG).size(24, 24).create());2. 模板:
水果 Logo:
watermelon {{@watermelon}}
lemon {{@lemon}}
banana {{@banana}}3. 输出:
水果 Logo:
watermelon 🍉
lemon 🍋
banana 🍌
  • 表格输出案例
表格标签以 # 开头,如 
{{#table}},它会渲染成一个具有 N 行和 N 列的 Word 表格。N 的值取决于 
table 标签中的数据。1. 代码
put("table", Tables.of(new String[][] {new String[] { "歌曲名称", "艺术家" }}).border(BorderStyle.DEFAULT).create());2. 模板
{{#table}}
  1. 输出:在这里插入图片描述

更多使用,参见官方文档。
仓库地址:
https://gitcode.com/gh_mirrors/po/poi-tl/overview
文档地址:
https://deepoove.com/poi-tl/#_why_poi_tl

也可参考:文章合集,有更多详细使用案例。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com