Java 之 Excel文件下载

  • 可以直接当作工具类使用
    • Controller业务层使用
    • 做为Utils工具类使用
    • 实例截图 图片三联

可以直接当作工具类使用

老规矩,废话不多说直接上代码:

Controller业务层使用

 @RequestMapping("/fileDownload")public void cs(HttpServletResponse res) {String realFileName="门禁数据.xlsx";   //下载的文件名String exampleFilePath="src/main/resources/download/"+realFileName;   //真实的文件路径File excelFile = new File(exampleFilePath);res.setCharacterEncoding("UTF-8");res.setHeader("content-type", "application/octet-stream;charset=UTF-8");res.setContentType("application/octet-stream;charset=UTF-8");//加上这个设置下载来的.xlsx文件打开时才不会报“Excel 已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃”res.addHeader("Content-Length", String.valueOf(excelFile.length()));try {res.setHeader("Content-Disposition", "attachment;filename=" + java.net.URLEncoder.encode(realFileName.trim(), "UTF-8"));} catch (UnsupportedEncodingException e1) {e1.printStackTrace();}byte[] buff = new byte[1024];BufferedInputStream bis = null;OutputStream os = null;try {os = res.getOutputStream();bis = new BufferedInputStream(new FileInputStream(new File(exampleFilePath)));int i = bis.read(buff);while (i != -1) {os.write(buff, 0, buff.length);os.flush();i = bis.read(buff);}} catch (IOException e) {e.printStackTrace();} finally {if (bis != null) {try {bis.close();} catch (IOException e) {log.error("【下载文件】{}",e);}}}log.info("【下载文件】成功,exampleFilePath={}",exampleFilePath);}

做为Utils工具类使用

    public void cs(HttpServletResponse res,String realFileName) {String exampleFilePath="src/main/resources/download/"+realFileName;   //真实的文件路径File excelFile = new File(exampleFilePath);res.setCharacterEncoding("UTF-8");res.setHeader("content-type", "application/octet-stream;charset=UTF-8");res.setContentType("application/octet-stream;charset=UTF-8");//加上这个设置下载来的.xlsx文件打开时才不会报“Excel 已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃”res.addHeader("Content-Length", String.valueOf(excelFile.length()));try {res.setHeader("Content-Disposition", "attachment;filename=" + java.net.URLEncoder.encode(realFileName.trim(), "UTF-8"));} catch (UnsupportedEncodingException e1) {e1.printStackTrace();}byte[] buff = new byte[1024];BufferedInputStream bis = null;OutputStream os = null;try {os = res.getOutputStream();bis = new BufferedInputStream(new FileInputStream(new File(exampleFilePath)));int i = bis.read(buff);while (i != -1) {os.write(buff, 0, buff.length);os.flush();i = bis.read(buff);}} catch (IOException e) {e.printStackTrace();} finally {if (bis != null) {try {bis.close();} catch (IOException e) {log.error("【下载文件】{}",e);}}}log.info("【下载文件】成功,exampleFilePath={}",exampleFilePath);}

实例截图 图片三联



拷贝下去是可以直接使用的,也可以当作工具类使用。

好用记得三联哈[手动狗头]!

Java 之 Excel文件下载相关推荐

  1. java将excel文件下载到本地

    1.代码如下,可直接复制 注:workbook 格式必须是HSSFWorkbook类型的,文件名后缀是 .xls,不然会报错. //测试excel文件是否导入成功,将导入的excel文件下载到本地St ...

  2. java后台实现excel文件下载功能

    java后台实现excel文件下载功能  java中对于excel文件的操作,有读取,写入,上传等功能,在对excel文件进行操作时,为了让使用者更加直观的制作excel数据,必然会有下载模板exce ...

  3. java excel api 下载文件_java excel api实现输出EXCEL文件下载

    java excel api实现输出EXCEL文件下载 [// 下载本地文件String fileName = 苹果知识库授权网点整理汇总副本20130210.xls.toString(); // 文 ...

  4. java迅雷下载excel,用servlet实现excel文件下载,用迅雷下载时文件名有关问题

    用servlet实现excel文件下载,用迅雷下载时文件名问题 用servlet实现的excel下载,在用浏览器直接下载时,获得的文件名是设置在header中的文件名, 但如果用迅雷下载,生成的文件名 ...

  5. java导出Excel(POI模式 Ajax下载 Post传参) bootstrap table getVisibleColumns获取显示的列

    工具类 (正式使用) package com.qyj.utils;import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson. ...

  6. poi导出Excel文件下载数据

    poi导出Excel文件下载数据 poi上传Excel文件批量的添加数据 : https://blog.csdn.net/kangshifu007/article/details/103149764 ...

  7. java中excel上传_java对excel表格的上传和下载处理

    Excel表格文件的上传和下载,java中涉及到文件肯定会有io流的知识. 而excel文件就要涉及到poi技术,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为 ...

  8. excel文件下载工具分享

    好久没和大家分享点东西了,今天就和大家分享一个excel文件下载工具,项目中有很多下载功能,尤其管理系统,每个菜单下都有下载功能,如果没有一个公共的工具类,就会乱套,维护起来也很吃力(不同菜单下的下载 ...

  9. Java多格式文件下载及解压处理

    工作中遇到很多多格式文件下载压缩及解压处理,现将通用文件下载工具类做一个总结.包含格式(doc/docx.xls/xlsx.lrm/lrmx.txt.zip/rar等). 一.解压处理 文件解压主要处 ...

最新文章

  1. 父亲节遇上端午节,你难道不回家吗?
  2. java8 group by_java8新特性Java 8 – Stream Collectors groupingBy 示例 - Java教程
  3. 硝烟四起的云服务双十一促销大战,谁更便宜?
  4. mysql str_to_date 字符串转换为日期
  5. stm32 火灾自动报警及联动控制源码_中级消防设施操作员关键技能之十四:能测试火灾自动报警系统联动功能...
  6. C#替换字符串起始/结尾指定的字符串
  7. MassTransitamp;amp;Sagas分布式服务开发ppt分享
  8. cf1526E. Oolimry and Suffix Array(未解决)
  9. 服务器最小化安装后的优化脚本
  10. MySQL数据技术嘉年华,带你深入MySQL的世界
  11. 苹果电风扇软件Macs Fan Control Pro安装教程
  12. OpenCV_cv::Mat的深拷贝 浅拷贝问题
  13. 远程连接另一台电脑,如何用被远程的电脑听歌
  14. springboot项目打jar包部署到linux中
  15. java ee图书管理系统_基于jsp的图书管理系统-JavaEE实现图书管理系统 - java项目源码...
  16. 2022茶艺师(中级)考试题及答案
  17. linux的grub是什么意思,grub是什么意思
  18. Tempest之Testr使用
  19. Wox Github下载太慢了
  20. 分布式存储HBASE原理学习

热门文章

  1. 电梯惊魂”不再发生,物联卡解决电梯安全问题!
  2. 编译原理(龙书):第四章部分题目参考答案
  3. 系统建模与仿真基础-欧拉法、龙格库塔法Matlab
  4. Android 输入系统 ANR机制的设计与实现
  5. 3 基于matplotlib的python数据可视化——导入Excel数据绘制组合图表
  6. 【深度学习基础】数字手势识别实验:1.任务描述
  7. JDBC详解(四):操作BLOB类型字段(超详解)
  8. 应用回归分析第五版电子书_应用回归分析(第5版)
  9. Unity API常用方法和类的解析
  10. 微信小程序:和平精英吃鸡捏脸数据助手微信小程序源码下载支持激励视频