Java生成word通报(使用echart、poi-tl、PhantomJS)
前段时间客户需要系统自动生成服务通报,word文档中要有图片、表格、文字。第一次做这种通报,项目经理又想用以前的方式,只好找新技术、新方法去实现这个功能。希望能帮到有需要的人
poi-tl介绍
使用Java导出Word一般用POI,但是用POI来导出Word,要写大量的段落、样式等细节代码,代码多且不易维护。通过 poi-tl 只需要制作导出的模版,服务端基本一行代码调用,传入模版路径和Map或者Bean即可生成Word模版,代码量大大降低,以后导出样式不满意的时候,只需要修改Word模版文件即可。但是poi-tl比较新,且只能生成 docx 文件,对word2007之前的 doc 文档不支持。
关于poi-tl的更多信息可在https://github.com/Sayi/poi-tl这里仔细学习,技术较新,但使用方便。
首先下载poi-tl包,并导入工程中。这里注意,如果工程里有poi3.15的包最好替换掉,最起码要poi3.16才行。
代码实例如下:
/**
* 测试的bean.
* @author
*/
public class Travel {
private String title;
private String smallTitle;
private String startDate;
private String endDate;
private int count;
private double money;
private String place1;
private String place2;
private PictureRenderData pic;
/**
* 构造方法.
*/
public Travel() {
super();
}
/*getter和setter方法.*/
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getSmallTitle() {
return smallTitle;
}
public void setSmallTitle(String smallTitle) {
this.smallTitle = smallTitle;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public String getPlace1() {
return place1;
}
public void setPlace1(String place1) {
this.place1 = place1;
}
public String getPlace2() {
return place2;
}
public void setPlace2(String place2) {
this.place2 = place2;
}
public PictureRenderData getPic() {
return pic;
}
public void setPic(PictureRenderData pic) {
this.pic = pic;
}
}
/**
* poi-tl库的使用示例.
* Created by blinkfox on 2017/6/27.
*/
public class PoitlTest {