java word导入_java word导入导出工具类

packagecom.shareworx.yjwy.utils;importjava.io.InputStream;importjava.util.HashMap;importjava.util.Map;importjava.util.Set;importjavax.servlet.ServletOutputStream;importjavax.servlet.http.HttpServletResponse;importorg.apache.poi.hwpf.HWPFDocument;importorg.apache.poi.hwpf.usermodel.Range;importorg.apache.poi.poifs.filesystem.POIFSFileSystem;importorg.apache.poi.util.IOUtils;importorg.springframework.web.context.request.RequestContextHolder;importorg.springframework.web.context.request.ServletRequestAttributes;/***

*@authorzhenwei.shi

**/

public classImpAndExpWord {/*** 根据表单导出word文档

*@authorzhenwei.shi

*@parammap 导入对象的键值对 KEY=模板标签 VALUE=替换模板标签的内容

*@paramtemlatePath word模板的全部路径 如:/templates/supplier/供应商管理表单.docs

* 此路径根据架构师搭建的资源环境而定,一般src/../../xx.docs

*@return

*/

public static void export(Mapparams, String docPath){

String docName= docPath.substring(docPath.lastIndexOf("/")+1, docPath.length());

InputStream is= null;

ServletOutputStream out= null;try{//下面这个MAP 就是上面参数里的MAP 在此为了视觉更清晰 真正实施时 提前通过MAP传进来,不要在此new

params = new HashMap();

params.put("AAAA","v1");//word模板上有个字符串叫k1,这里将模板上的k1替换为要赋值v1

params.put("k2","v2");//同上

params.put("k3","v3");//同上

params.put("k4","v4");//同上

params.put("k5","v5");//同上

params.put("k6","v6");//同上

params.put("k7","v7");//同上

is= ImpAndExpWord.class.getResourceAsStream("/"+docPath);

POIFSFileSystem pfs= newPOIFSFileSystem(is);

HWPFDocument hwpf= newHWPFDocument(pfs);

Range range=hwpf.getRange();

Set keys =params.keySet();for(String key: keys){

range.replaceText(key, params.get(key));

}

HttpServletResponse response=((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();

response.setCharacterEncoding("UTF-8");

response.setContentType("application/octet-stream; charset=UTF-8");

response.addHeader("Content-Disposition", "attachment; filename=\""+new String(docName.getBytes("GB2312"),"ISO8859-1")+"\";");//

out =response.getOutputStream();

hwpf.write(out);

out.flush();

out.close();

}catch(Exception e) {

e.printStackTrace();

}finally{

IOUtils.closeQuietly(out);

IOUtils.closeQuietly(is);

}

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值