博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java word导入导出工具类
阅读量:4679 次
发布时间:2019-06-09

本文共 2699 字,大约阅读时间需要 8 分钟。

package com.shareworx.yjwy.utils;import java.io.InputStream;import java.util.HashMap;import java.util.Map;import java.util.Set;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServletResponse;import org.apache.poi.hwpf.HWPFDocument;import org.apache.poi.hwpf.usermodel.Range;import org.apache.poi.poifs.filesystem.POIFSFileSystem;import org.apache.poi.util.IOUtils;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes;/** *  * @author zhenwei.shi * */public class ImpAndExpWord {    /**     * 根据表单导出word文档     * @author zhenwei.shi     * @param map 导入对象的键值对  KEY=模板标签  VALUE=替换模板标签的内容     * @param temlatePath word模板的全部路径  如:/templates/supplier/供应商管理表单.docs     *            此路径根据架构师搭建的资源环境而定,一般src/../../xx.docs     * @return     */    public static void export(Map
params, 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 = new POIFSFileSystem(is); HWPFDocument hwpf = new HWPFDocument(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); } }}

word 图片

转载于:https://www.cnblogs.com/zwcry/p/8484261.html

你可能感兴趣的文章
html学习文档-10、HTML 表格
查看>>
Node.js基本开发流程
查看>>
Malware Sample Sources for Researchers
查看>>
[fw]Die 為什麼不能用現在完成式?
查看>>
js弹出框、对话框、提示框、弹窗总结
查看>>
以实现MongoDB副本集状态的监控为例,看Telegraf系统中Exec输入插件如何编写部署...
查看>>
dpkg
查看>>
DHCP概念及其缺点
查看>>
Unity3D中的第三人称镜头的脚本控制
查看>>
nyoj 492
查看>>
jquery.autocomplete插件完美应用
查看>>
RT-Thread Mini2440串口驱动
查看>>
BA--干球温度、露点温度和湿球温度--概念
查看>>
Github泄露扫描系统
查看>>
关于AFNetworking的Assertion failure崩溃
查看>>
Python 3 搭建
查看>>
数组的Clone方法
查看>>
app之模拟登陆页面的实现
查看>>
数据结构化与保存
查看>>
关于img标签的探讨
查看>>