public void dayinHw(HttpServletRequest request, HttpServletResponse response){
String id = request.getParameter("id");
Outdoorads od = this.outdooradsService.queryById(id);
HWPFDocument hdt=null;
try {
//第一步读取项目中word模板文件
String fileDir = new File(request.getRealPath("/")+"/doc/").getCanonicalPath();
FileInputStream in = new FileInputStream(new File(fileDir+ "/户外宣传品申请表.doc"));

// 第二步,创建一个HWPFDocument,对应读取的一个doc文件
hdt = new HWPFDocument(in);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//第三步替换读取到的word模板内容的指定字段
Range range = hdt.getRange();//读取word文本内容
Map<String, String> map = new HashMap<String, String>();//将需要填充的字段放入map中
if(StringUtil.isNotEmpty(od.getTitle())){
map.put("title",od.getTitle());
}else{
map.put("title","");
}
if(od.getConduct_date() != null){
map.put("conduct_date",DateTool.dateToStr1(od.getConduct_date()));
}else{
map.put("conduct_date","");
}
if(StringUtil.isNotEmpty(od.getConduct_address())){
map.put("conduct_address",od.getConduct_address());
}else{
map.put("conduct_address","");
}

for (Map.Entry<String, String> entry : map.entrySet()) {
if(entry.getValue()!=null){
range.replaceText(entry.getKey(), entry.getValue());//替换文本内容
}else{
range.replaceText(entry.getKey(), "");//替换文本内容
}

}
dayin(request, response, hdt);
}
public void dayin(HttpServletRequest request, HttpServletResponse response, HWPFDocument hdt){
//*********************wangyaStart*********************************
try{
//路径
String destPathName = request.getRealPath("/") + "//";
File dirPath = new File(destPathName);
if (!dirPath.exists()) {
dirPath.mkdirs();
}
// 生成文件名
String curDate = String.valueOf(new java.util.Date().getTime());
String Filename = dirPath + "//" +"户外宣传品申请表.doc";
//写入数据
FileOutputStream fout = new FileOutputStream(Filename);
hdt.write(fout);
fout.close();

BufferedInputStream bis = null;
BufferedOutputStream bos = null;
//输出word内容文件流,提供下载

String fileNameTemp = URLEncoder.encode("户外宣传品申请表.doc", "utf-8");
request.setCharacterEncoding("GBK");
response.reset();
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment; filename=\""+ fileNameTemp + "\"");
OutputStream outs = response.getOutputStream();

bis = new BufferedInputStream(new FileInputStream(Filename));
bos = new BufferedOutputStream(outs);

byte[] buff = new byte[2048];
int bytesRead;
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
bis.close();
bos.flush();
bos.close();
}catch(Exception e){
e.printStackTrace();
}
}

java导出word的更多相关文章

  1. java导出word的6种方式(复制来的文章)

    来自: http://www.cnblogs.com/lcngu/p/5247179.html 最近做的项目,需要将一些信息导出到word中.在网上找了好多解决方案,现在将这几天的总结分享一下. 目前 ...

  2. java导出word文件

    java导出word文件 test5.ftl文件生存方法, 第一步:用word新建test5.doc,填写完整模板,将需导出数据用${}代替 第二步:将test5.doc另存为test5.xml 第三 ...

  3. [转载]java导出word的5种方式

    在网上找了好多天将数据库中信息导出到word中的解决方案,现在将这几天的总结分享一下.总的来说,java导出word大致有5种解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Ja ...

  4. [原创]java导出word的5种方式

    在网上找了好多天将数据库中信息导出到word中的解决方案,现在将这几天的总结分享一下.总的来说,java导出word大致有5种解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Ja ...

  5. java导出word的6种方式(转发)

    来自: http://www.cnblogs.com/lcngu/p/5247179.html 最近做的项目,需要将一些信息导出到word中.在网上找了好多解决方案,现在将这几天的总结分享一下. 目前 ...

  6. java导出word直接下载

    导出word工具类 package util; import java.io.IOException; import java.io.Writer; import java.util.Map; imp ...

  7. java 导出word 并下载

    记录一下导出操作 源码: /************ * 导出word 并下载 * @param id 房号记录编号 * ***********************/ @RequestMappin ...

  8. Freemarker + xml 实现Java导出word

    前言 最近做了一个调查问卷导出的功能,需求是将维护的题目,答案,导出成word,参考了几种方案之后,选择功能强大的freemarker+固定格式之后的wordxml实现导出功能.导出word的代码是可 ...

  9. Java导出Word利用freemarker(含图片)

    制作Word模版 建议使用高版本的office做,尽量不要用WPS做,生成xml会出现乱码 编码要统一,推荐UTF-8 建好模板,将模板另存为xml格式,建议原来模板不要删,xml的如果后期打不开,还 ...

  10. java导出word(带图片)

    public class CreateWordDemo { public void createDocContext(String file) throws DocumentException,IOE ...

随机推荐

  1. Hibernate学习(四)get和Load比较

    package cn.lonecloud.test.crud; import org.hibernate.HibernateException; import org.hibernate.Sessio ...

  2. ch11 持有对象

    Java集合的基本类型:List.Set.Queue.Map 使用容器时若未指定泛型参数ArrayList apples=new ArrayList();,则容器中所有元素都为Object类型,使用时 ...

  3. js获取对象长度和名称

    1.对象的长度不能用.length获取,用js原生的Object.keys可以获取到 var obj = {'name' : 'Tom' , 'sex' : 'male' , 'age' : '14' ...

  4. Python+Selenium基础篇之1-环境搭建

    Python + Selenium 自动化环境搭建过程 1. 所需组建 1.1 Selenium for python 1.2 Python 1.3 Notepad++ 作为刚初学者,这里不建议使用P ...

  5. uploadify上传文件(1)--下载

    最近在给公司做一个软件版本迭代管理的软件,是一个asp.net网站开发项目.利用mvc框架,前端采用bootstrap,数据库是MySQL,数据库访问利用EF框架. 软件需求是公司软件开发项目多,版本 ...

  6. Pymongo一些常见需求(陆续补充)

    总结一下最近包括之前遇到的一些pymongo操作的问题. #需求1: 搜索文档数组里边是否存在某元素 数据: data1 = { '_id': xxxxxxxxxxxxxx, 'dataList': ...

  7. 网卡驱动引起openstack的mtu问题

    一套Pike版本的openstack测试环境,使用vlan模式的网络,数据网网卡使用的是绿联的usb百兆网卡,遇到了虚拟机网络异常的问题.同一个vlan下,不同宿主机上的两台虚拟机,相互之间可以pin ...

  8. Tomcat重定向

    tomcat默认情况下不带www的域名是不会跳转到带www的域名的,而且也无法像apache那样通过配置.htaccess来实现.如果想要把不带"www'的域名重定向到带"www& ...

  9. 一句python,一句R︱模块导入与查看、数据读写出入、数据查看函数、数据类型、遍历文件

    先学了R,最近刚刚上手python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句python,对应写一句R. pandas中有类似R中的read.table的功能,而 ...

  10. 如何修改WinPE Boot的.wim镜像文件

    1. 使用imagex /apply或imagex /mountrw将WIM镜像文件mount到某个文件夹,假设为d:\tmp\winpe_x86\mount.  例: imagex /mountrw ...