java导出word
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的更多相关文章
- 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中.在网上找了好多解决方案,现在将这几天的总结分享一下. 目前 ...
- java导出word直接下载
导出word工具类 package util; import java.io.IOException; import java.io.Writer; import java.util.Map; imp ...
- java 导出word 并下载
记录一下导出操作 源码: /************ * 导出word 并下载 * @param id 房号记录编号 * ***********************/ @RequestMappin ...
- Freemarker + xml 实现Java导出word
前言 最近做了一个调查问卷导出的功能,需求是将维护的题目,答案,导出成word,参考了几种方案之后,选择功能强大的freemarker+固定格式之后的wordxml实现导出功能.导出word的代码是可 ...
- Java导出Word利用freemarker(含图片)
制作Word模版 建议使用高版本的office做,尽量不要用WPS做,生成xml会出现乱码 编码要统一,推荐UTF-8 建好模板,将模板另存为xml格式,建议原来模板不要删,xml的如果后期打不开,还 ...
- java导出word(带图片)
public class CreateWordDemo { public void createDocContext(String file) throws DocumentException,IOE ...
随机推荐
- maven排除jar包冲突
首先查看mvn中冲突的包 使用命令:mvn dependency:tree -Dverbose | grep "omitted for conflict with" windows ...
- 重磅发布:《阿里巴巴Android开发手册(规约)》
1.前言 阿里巴巴于近日为广大程序员再送上重磅开春好礼:<阿里巴巴Android开发手册(规约)>.该开发规范在阿里内部经过了长期的修缮,现已总结成册,向所有移动开发者.技术爱好者开放,希 ...
- 集成 solr6.5.1到 tomcat7(8) 中 (解决java.lang.NoSuchMethodError问题)
♣下载solr安装包 ♣安装solr ♣solr应用部署到tomcat下 ♣配置web.xml ♣在tomcat7启动 ♣改为在tomcat8启动 ♣在自带的Jetty里启动 ♣建立第一个Core 安 ...
- scrapy学习总结
1.为了配合XPath,Scrapy除了提供了 Selector 之外,还提供了方法来避免每次从response中提取数据时生成selector的麻烦 Selector有四个基本的方法(点击相应的方法 ...
- DQL、DML、DDL、DCL
二. SQL语言的分类 SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL. 1. 数据查询语言DQL数据查询语言DQL基本结构是由SELECT子句 ...
- PCIe设备的配置空间
关于PCI设备的配置空间网上已经有很多资料了,如下图就是PCI设备必须支持的64个字节的配置空间,范围为0x00-0x3f. 很多PCI设备仅仅支持者64字节的配置空间.PCI和PCIe配置空间的区别 ...
- 利用Eclipse中的Maven构建Web项目报错(二)
利用Eclipse中的Maven构建Web项目 1.错误描述 [INFO] Scanning for projects... [INFO] [INFO] Using the builder org.a ...
- Caused by: java.lang.ClassNotFoundException: Could not load requested class : org.h2.Driver
1.错误描述 WARN:2015-05-01 13:26:10[localhost-startStop-1] - HHH000402: Using Hibernate built-in connect ...
- Linux显示邮件状态等信息
Linux显示邮件状态等信息 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ finger -l Login: youhaidong Name: youhaid ...
- dojo中获取表格中某一行的某个值
dojo中经常出现对表格中的某行进行操作,如单击某行修改.删除等.那怎样获取某行的唯一标示呢? 如查询表格中的某列有个userId,并且这个是唯一的,那么可以通过它来访问这一列 具体操作代码如下: v ...