最近工作中遇到一个需求:根据word模板文档导出word文件。
查阅了一些资料,发现Apache POI可以实现文档读写的功能,于是就研究了一下,总结如下:
Apache-POI在线Javadoc:http://tool.oschina.net/apidocs/apidoc?api=apache-POI
POI详细介绍:
Apache POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。目前POI已经有了Ruby版本。结构:
-
HSSF - 提供读写Microsoft Excel XLS格式档案的功能。
-
XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能。
-
HWPF - 提供读写Microsoft Word DOC97格式档案的功能。
-
XWPF - 提供读写Microsoft Word DOC2003格式档案的功能。
-
HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
-
HDGF - 提供读Microsoft Visio格式档案的功能。
-
HPBF - 提供读Microsoft Publisher格式档案的功能。
-
HSMF - 提供读Microsoft Outlook格式档案的功能。
Java Web根据模板导出word文件
基本实现原理:
1、首先,将模板中需要用到的参数组装为一个Map集合;
2、然后读取模板文档,使用POI API解析文档输入流;
3、将Map集合中的内容写入模板文档。
功能使用了springMVC的相关功能,点击导出按钮,调用前台JS,JS代码根据springMVC的注解功能实现对后台导出方法的调用,controller控制类如下:
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import com.lmb.word.util.XwpfUtil;
/**
* Java Web根据模板导出word文件(spring MVC controller实现)
* @author lmb
* @date 2