Skip to content

A Java library to generate xls/x files from a xls/x template.

License

Notifications You must be signed in to change notification settings

zhangyu836/xltpl4java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xltpl

使用 xls/x 文件作为模板来生成 xls/x 文件。 English

获取

<dependency>
    <groupId>io.github.zhangyu836</groupId>
    <artifactId>xltpl</artifactId>
    <version>0.4.0</version>
</dependency>

使用

  • 要使用 xltpl,需要了解 jinja2 模板的语法
  • 选择一个 xls/x 文件作为模板。
  • 在单元格中插入变量:
{{name}}
  • 在单元格中插入控制语句:
{%- for row in rows %}
{% set outer_loop = loop %}{% for row in rows %}
Cell
{{outer_loop.index}}{{loop.index}}
{%+ endfor%}{%+ endfor%}
  • Java code
import io.github.zhangyu836.xltpl.BookWriter;
BookWriter bookWriter = new BookWriter();
bookWriter.load(fileName);
Map<String, Object> context = new HashMap<>();
context.put("name", "Hello Wizard");
context.put("address", "Somewhere over the rainbow");
context.put("date", new Date());
context.put("items", items);
bookWriter.renderSheet(context);
bookWriter.save(outFileName);

参见 示例

实现方法

xls/x 文件的每个工作表会被转换为一棵树。
树会被转换为带有自定义 tag 的 jinja2 模板。
渲染模板时,自定义 tag 所对应的 jinja2 扩展调用相应的树节点来写入 xls/x 文件。

相关