poi-tl
poi-tl 是一款基于 poi+FTL 思想的框架。
对原来的 apache poi 进行封装,简化了我们的操作。
入门案例
maven 引入
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.4.2</version>
</dependency>
入门案例
`` 用来标识纯文本。
templatePath 对应的 word 模板中,我指定了 ``,生成的信息中就会被指定的信息替换掉。
/*
* Copyright (c) 2019. houbinbin Inc.
* idoc All rights reserved.
*/
package com.github.houbb.idoc.test.poi;
import com.deepoove.poi.XWPFTemplate;
import org.junit.Test;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
/**
* <p> </p>
*
* <pre> Created: 2019/2/14 6:30 AM </pre>
* <pre> Project: idoc </pre>
*
* @author houbinbin
*/
public class WordFtlTest {
@Test
public void textTest() throws IOException {
final String templatePath = "/Users/houbinbin/code/_github/idoc/idoc-core/src/main/resources/idoc/word/idoc-word-all.docx";
final String templateOutPath = "/Users/houbinbin/code/_github/idoc/idoc-core/src/main/resources/idoc/word/test-idoc-word-all.docx";
XWPFTemplate template = XWPFTemplate.compile(templatePath).render(new HashMap<String, Object>());
FileOutputStream out = new FileOutputStream(templateOutPath);
template.write(out);
out.flush();
out.close();
template.close();
}
}
个人感觉
优点
封装的相对比较合理。
思想也非常正确。
缺点
在处理循环的时候,需要一个模板嵌套另一个模板。
这非常的麻烦,能否简化掉?
我看了指定的插件等,暂时无法满足。
所以想自己设计一个类似 FTL 语法的模板解析,可以在 poi-tl 的基础上进行类似的封装。