java导出word直接下载
导出word工具类
package util; import java.io.IOException;
import java.io.Writer;
import java.util.Map; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException; public class ExportWordUtil { private static final Logger log = LoggerFactory.getLogger(ExportWordUtil.class); /**
* 导出word文档
* @param response
* @param fileName 下载文件名称
* @param model 模板名称
* @param dataMap 导出数据
*/
public static void createDoc(HttpServletResponse response, String fileName, String model, Map<String,Object> dataMap) {
response.setContentType("application/x-download;charset=UTF-8");
try {
fileName = new String(fileName.getBytes("GBK"),"ISO-8859-1");
} catch (Exception e) {
log.error("文件名编码出错!");
}
//给文件名加上时间戳
fileName += DateTimeUtils.getNowTimeShortString() + ".doc";
response.addHeader("Content-disposition", "filename="+fileName+";charset=UTF-8");
//设置模本装置方法和路径,默认指定在/resources/exportWord目录下
Configuration configuration = new Configuration();
configuration.setDefaultEncoding("UTF-8");
configuration.setClassForTemplateLoading(ExportWordUtil.class, "/resources/exportWord");
Template template = null;
try {
//装载模板
template = configuration.getTemplate(model);
template.setEncoding("UTF-8");
} catch (IOException e) {
log.error("导出word装载模版出错!");
e.printStackTrace();
}
Writer out = null;
try {
//输出对象,并对文件名进行编码
out = response.getWriter();
} catch (IOException e) {
log.error("导出word输出流创建错误!");
e.printStackTrace();
}
try {
//装载并输出数据,生成word文档
template.process(dataMap, out);
} catch (TemplateException e) {
e.printStackTrace();
log.error("导出word出错!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
如何在action中使用:
/**
* 导出
* @param id
* @param response
* @return
*/
@RequestMapping("/util/export.do")
public void export(HttpServletResponse response) {
Map<String, Object> dataMap = new HashMap<String, Object>();
dataMap.put("xm", "小花猫");
daaMap.put("age", "3");
ExportWordUtil.createDoc(response, "小花猫信息", "xhmxx.ftl", dataMap);
}
java导出word直接下载的更多相关文章
- java 导出word 并下载
记录一下导出操作 源码: /************ * 导出word 并下载 * @param id 房号记录编号 * ***********************/ @RequestMappin ...
- java导出word的6种方式(复制来的文章)
来自: http://www.cnblogs.com/lcngu/p/5247179.html 最近做的项目,需要将一些信息导出到word中.在网上找了好多解决方案,现在将这几天的总结分享一下. 目前 ...
- java导出word文件
java导出word文件 test5.ftl文件生存方法, 第一步:用word新建test5.doc,填写完整模板,将需导出数据用${}代替 第二步:将test5.doc另存为test5.xml 第三 ...
- [转载]java导出word的5种方式
在网上找了好多天将数据库中信息导出到word中的解决方案,现在将这几天的总结分享一下.总的来说,java导出word大致有5种解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Ja ...
- [原创]java导出word的5种方式
在网上找了好多天将数据库中信息导出到word中的解决方案,现在将这几天的总结分享一下.总的来说,java导出word大致有5种解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Ja ...
- java导出word的6种方式(转发)
来自: http://www.cnblogs.com/lcngu/p/5247179.html 最近做的项目,需要将一些信息导出到word中.在网上找了好多解决方案,现在将这几天的总结分享一下. 目前 ...
- Freemarker + xml 实现Java导出word
前言 最近做了一个调查问卷导出的功能,需求是将维护的题目,答案,导出成word,参考了几种方案之后,选择功能强大的freemarker+固定格式之后的wordxml实现导出功能.导出word的代码是可 ...
- Java导出freemarker实现下载word文档格式功能
首先呢,先说一下制作freemarker模板步骤, 1. 在WPS上写出所要的下载的word格式当做模板 2. 把模板内不固定的内容(例:从数据库读取的信息)写成123或者好代替的文字标注 3. 把固 ...
- Java导出Word利用freemarker(含图片)
制作Word模版 建议使用高版本的office做,尽量不要用WPS做,生成xml会出现乱码 编码要统一,推荐UTF-8 建好模板,将模板另存为xml格式,建议原来模板不要删,xml的如果后期打不开,还 ...
随机推荐
- sql中去掉换行符和回车符
sql 中,char(13),char(10)或nchar(13),nchar(10)可表示SQL中的回车换行符,但是会以空格的形式显示.replace(replace(字段名,char(10), ' ...
- 记录一个mybatis编写xml遇到的错误:java.lang.unsupportedOperationException
写完xml里的sql在执行xml中的sql时报错,经过排查找到问题出在方法中的resultType这个属性的类型上 如图所示:只需要将sortedSet改为set集合里所存储的对象的类型即可. 这里我 ...
- offSet和client和scroll
这三个是是js盒模型属性 client clientWidth 内容宽度加上左右padding clientHeight 内容高度加上上下padding clientTop 上边框的宽度 client ...
- Ansible学习记录二:命令
0.ansible 命令参数详解: [root@localhost ~]# ansible Usage: ansible <host-pattern> [options] Options: ...
- Laravel输出sql语句
$queries = DB::getQueryLog();
- RLF。HRLF解释
- Jenkins学习总结(2)——Jenkins+Maven进行Java项目持续集成
最近配置了Jenkins服务器,记录下基本过程.(当然还遇到了若干小问题,兵来将挡水来土掩就是了) Jenkins安装 安装Tomcat 从Jenkins官网下载jenkins.war文件.官网地址: ...
- Android获取当前连接的wifi名称
首先AndroidMainfest.xml文件里加入权限: <uses-permission android:name="android.permission.ACCESS_NETWO ...
- gullo.me 的 natvps
gullo.me 的 natvps 1. 在下面的地址中输入内网 IP,查看许可的网络资源 https://hosting.gullo.me/plugin/support_manager/knowle ...
- mahout的特性(三)
mahout的特性 虽然在开源领域中相对较为年轻,但 Mahout 已经提供了大量功能,特别是在集群和CF 方面. Mahout 的主要特性包括: Taste CF.Taste 是 Sean Owen ...