小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
pom文件中引入依赖
<!-- 生成word工具包-->
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.7.3</version>
</dependency>
<!-- 上面需要的依赖-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
制作导出word用的模板文件docx,如图
java导出word代码
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.policy.HackLoopTableRenderPolicy;
import com.google.common.collect.Lists;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Description:
* @Author: Tarzan Liu
* @Date: 2020/4/2 14:54
*/
public class test {
public static void test(){
HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy();
Configure config = Configure.newBuilder().bind("list", policy).build();
List<Map<String, Object>> list= Lists.newArrayList();
for (int i = 0; i < 5; i++) {
Map<String, Object> data = new HashMap<>();//通过map存放要填充的数据
data.put("year","201"+i);
data.put("num",33+i);
list.add(data);
}
Map<String, Object> data = new HashMap<>();//通过map存放要填充的数据
data.put("list",list);
XWPFTemplate template = XWPFTemplate.compile("E:\\test\\ccc.docx",config).render(data);//调用模板,填充数据
try {
FileOutputStream out = new FileOutputStream("E:\\test\\test.docx");//要导出的文件名
template.write(out);
out.flush();
out.close();
template.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
test.test();
}
}
idea运行输出图
导出后的文件如图