java excel模板 下载_java下载Excel模板(工具类)

public classDownloadUtil{/***@paramfilePath 要下载的文件路径

*@paramreturnName 返回的文件名

*@paramresponse HttpServletResponse

*@paramdelFlag 是否删除文件*/

protected void download(String filePath, String returnName, HttpServletResponse response, booleandelFlag){this.prototypeDownload(newFile(filePath), returnName, response, delFlag);

}/***@paramfile 要下载的文件

*@paramreturnName 返回的文件名

*@paramresponse HttpServletResponse

*@paramdelFlag 是否删除文件*/

protected void download(File file,String returnName,HttpServletResponse response,booleandelFlag){this.prototypeDownload(file, returnName, response, delFlag);

}/***@paramfile 要下载的文件

*@paramreturnName 返回的文件名

*@paramresponse HttpServletResponse

*@paramdelFlag 是否删除文件*/

public void prototypeDownload(File file,String returnName,HttpServletResponse response,booleandelFlag){//下载文件

FileInputStream inputStream = null;

ServletOutputStream outputStream= null;try{if(!file.exists()) {return;}

response.reset();//设置响应类型 PDF文件为"application/pdf",WORD文件为:"application/msword", EXCEL文件为:"application/vnd.ms-excel"。

response.setContentType("application/octet-stream;charset=utf-8");//设置响应的文件名称,并转换成中文编码//returnName = URLEncoder.encode(returnName,"UTF-8");

returnName = response.encodeURL(new String(returnName.getBytes(),"iso8859-1")); //保存的文件名,必须和页面编码一致,不然乱码//attachment做为附件下载;inline客户端机器有安装匹配程序,则直接打开;注意改变配置,清除缓存,不然可能不能看到效果

response.addHeader("Content-Disposition", "attachment;filename="+returnName);//将文件读入响应流

inputStream = newFileInputStream(file);

outputStream=response.getOutputStream();int length = 1024;int readLength=0;byte buf[] = new byte[1024];

readLength= inputStream.read(buf, 0, length);while (readLength != -1) {

outputStream.write(buf,0, readLength);

readLength= inputStream.read(buf, 0, length);

}

}catch(Exception e) {

e.printStackTrace();

}finally{try{

outputStream.flush();

}catch(IOException e) {

e.printStackTrace();

}try{

outputStream.close();

}catch(IOException e) {

e.printStackTrace();

}try{

inputStream.close();

}catch(IOException e) {

e.printStackTrace();

}//删除原文件

if(delFlag) {

file.delete();

}

}

}/***@parambyteArrayOutputStream 将文件内容写入ByteArrayOutputStream

*@paramresponse 写入response

*@paramreturnName 返回的文件名

*@throwsIOException*/

public void download(ByteArrayOutputStream byteArrayOutputStream, HttpServletResponse response, String returnName) throwsIOException {

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

returnName= response.encodeURL(new String(returnName.getBytes(),"iso8859-1")); //保存的文件名,必须和页面编码一致,不然乱码

response.addHeader("Content-Disposition", "attachment;filename=" +returnName);

response.setContentLength(byteArrayOutputStream.size());

ServletOutputStream outputstream= response.getOutputStream(); //取得输出流

byteArrayOutputStream.writeTo(outputstream); //写到输出流

byteArrayOutputStream.close(); //关闭

outputstream.flush(); //刷数据

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值