使用场景

Java下载预设的excel模板。

处理思路

1、配置文件模板路径:project-web.xml

<entry key="file.templetPath">/com/config/project/example/ImportTemplate.xlsx</entry>

2、配置项与类映射:applicationContext.xml

<bean id="configManager" class="com.sc.project.base.ConfigManager"><property name="templetPath" value="${file.templetPath}"></property>
</bean>

3、配置类:ConfigManager.java

public class ConfigManager{private String templetPath;public String getTempletPath() {return templetPath;}public void setTempletPath(String templetPath) {this.templetPath = templetPath;}
}

3、下载模板功能—设置导出文件名,excel字体头部格式

@RequestMapping(value = "/template/download.do")
public void downloadTemplet(HttpServletResponse response) {try {response.setContentType("application/force-download");// 设置强制下载不打开response.addHeader("Content-Disposition", "attachment;fileName=" + new String("导入模板".getBytes("gb2312"), "ISO8859-1") + ".xlsx");// 设置文件名importService.downloadTemplet(response.getOutputStream());} catch (Exception e) {logger.error(e.getMessage(), e);}
}

4、下载模板功能—读取字节流,导出excel模板

public void downloadTemplet(OutputStream outputStream) {try {byte[] rcBytes = getFileData(configManager.getTempletPath());outputStream.write(rcBytes);} catch (Exception e) {e.printStackTrace();logger.error("writeExample",e.getMessage(),e);}
}

5、模板缓存:下载模板,将字节流缓存起来,key为模板路径,value为文件字节流

private Map<String,byte[]> fileDatas = new ConcurrentHashMap<String, byte[]>();
private  byte[] getFileData(String filePath) throws Exception{byte[] data = null;if (fileDatas.containsKey(filePath)){data = fileDatas.get(filePath);}if (data == null){data = FileUtils.readFile(filePath);fileDatas.put(filePath,data);}return data;
}

6、读取文件字节流工具类:FileUtils.java

public static byte[] readFile(String fileName)throws Exception{FileInputStream fis=null;try {fis=new FileInputStream(fileName);byte[] buf=new byte[fis.available()];int readed=0;int rv=0;while(readed<buf.length&&(rv=fis.read(buf,readed,buf.length-readed))>0){readed+=rv;}if (readed==buf.length){return buf;}else{return null;}} finally {if(fis!=null){fis.close();}}
}

Java:Excel模板下载相关推荐

  1. java excel模板 下载_Java从服务端下载Excel模板文件

    /** * 描述:下载外部案件导入模板 * @param response * @param request * @author songfayuan * 2018年6月7日下午5:03:59 */ ...

  2. java excel模板下载_JavaWeb-POI实现excel表格下载

    页面效果 功能概述: 选中要需要导出到excel的列(也可以是获取一些id)然后后台查找数据生成excel,用户点击导出到Excel就下载excle文件 前端页面 multiselect=" ...

  3. VUE+JAVA实现EXCEL模板下载

    一.项目场景: VUE+JAVA实现EXCEL模板下载 二.功能背景 本人作为一个开发小白,今天接到一个小需求系统需要导入数据,也就十几个字段,我和老板说了,让客户一个一个去输入吧!然后我就被经理叫去 ...

  4. 【vue+springboot】excel模板下载、导入功能实现

    基于VUE+SpringBoot实现excel模板下载.导入功能 背景 最近在工作中经常遇到批量导入的功能,而且前端还要提示导入成功几条.失败几条.哪一条数据重复.是哪一条导入的数据出现问题等,抽空写 ...

  5. SpringBoot打成jar包部署,Excel模板下载文件遇到的问题

    问题一. 读取resource 目录下文件时出现路径找不到 在本机测试都很顺利,当打包jar文件放到服务器上测试的时候发现了类似下面的异常信息: java.nio.file.NoSuchFileExc ...

  6. nginx,excel模板下载

    nginx,excel模板下载 weixin_30814223 2018-08-27 10:26:00  245  收藏 版权 spring boot项目,使用nginx服务器 最近在做一个功能是ex ...

  7. SAP ABAP(一个简单的excel模板下载与数据导入demo)

    文章目录 备忘 一.excel模板 二.代码 如下: 总结 备忘 excel模板下载与数据上传处理demo (选择屏幕添加按钮,F4选择文件,模板下载,读取excel数据) 一.excel模板 共两个 ...

  8. java(Springboot) excel模板下载、导入

    一.java对excel模板的下载 首先在resources目录下 代码可以直接复制,标红的是你的excel表名.然后在浏览器输入连接http://xxxx:8610/cloud/basic/user ...

  9. java excel 模板 替换_替换WORD/EXCEL模板文档中的内容并下载java

    /** 案件模板下载 * **/ public static voidgenerateFile(HttpServletRequest request,HttpServletResponse respo ...

最新文章

  1. 在SAP中进行黏贴时必须要把之前的数据删掉后才能黏贴,不能直接使用黏贴来覆盖之前的数据,这个怎麼解?
  2. 关于 Angular view Query 的 id 选择器问题的单步调试
  3. 面经——C/C++常见面试知识点总结附面试真题
  4. Polly的7种策略
  5. tomcat(9)Session管理
  6. 格式化输入数字_Python格式化输出的三种方式
  7. Nginx 静态服务器
  8. element-ui 解决 table 里包含表单验证的问题!
  9. theano 编程细节
  10. Windows Phone 数据库并行访问【转】
  11. origin 修改默认字体
  12. Ubuntu配置maven环境变量
  13. win11安装使用安卓子系统WSA
  14. 基于小波变换的音频压缩
  15. 微信号名称乱码什么情况_微信号改成什么比较好,2020最火微信号!
  16. driller fuzz arm问题解决记录
  17. c语言程序设计陈彦君,2008 年度焦作学科研成果奖励登记表(论文).doc
  18. NOI 2008 假面舞会
  19. kubernets-RBAC
  20. IT痴汉的工作现状51-离职之花与诅咒之座

热门文章

  1. C语言 数据结构 之 链式栈
  2. 讯为4412开发板Linux驱动学习笔记
  3. 极差问题:c++求解1-10的极差问题的初等解法
  4. python文件去重软件_Python实现的txt文件去重功能示例
  5. python3.5安装JPype1失败问题
  6. 【Qt/C++异常笔记】C1083:无法打开包括文件:“stddef.h”
  7. C语言毕业设计 图书管理系统
  8. 云原生虚拟化:一文读懂网络虚拟化之 tun/tap 网络设备
  9. Visual Studio 2010
  10. [go学习笔记.第十六章.TCP编程] 3.项目-海量用户即时通讯系统-redis介入,用户登录,注册