大家知道,我们在实现 Excel 上传的时候,会让我们去下载个模板,然后实现导入功能。在此我在这里记录下来,以便后续的使用。。。

首先思考一个问题是 这个模板这么给前台,还有这个模板是这么来的,刚开始的时候,我自己写了个生成Excel模板,然后使用流传到前台,这个时候就出现个问题,但产品经理说是这个模板过于简单,我需要更改,这个就是个问题,难不成我还要更改这个代码,再生成一个使它满足的模板吗,这个实现也可以,就是有点麻烦,需要时间去学。 首先第一个问题,就是这个模板这么来,直接到项目中读取,我们把这个模板放到一个文件夹下。 第二个问题 这个模板这么给前台。先搞点代码。。

/**
* 下载模板信息
* 适用于windows和linux
* @param response
* @param request
* @param templeteName
* @throws IOException
*/
public static void downloadTemplate(HttpServletResponse response,HttpServletRequest request,String templeteName) throws IOException {
OutputStream outp = null;
FileInputStream in = null;
try {
String fileName = templeteName; //要下载的模板文件
if(templeteName!=null){
if(!templeteName.endsWith(".xls")){
fileName = templeteName + ".xls";
}
}
//request.getSession().getServletContext() 相当于tomcat容器
String separator = File.separator; //用于区分是window系统还是liunx系统
String filedownload = "";
if("\\".equals(separator)){
//window 下
filedownload = request.getSession().getServletContext().getRealPath("/WEB-INF/resources/file")+"/"+fileName; // 这个Excel文件存在的路径
filedownload = filedownload.replace("/","\\");
}
if("/".equals(separator)){
//linux下
filedownload = request.getSession().getServletContext().getRealPath("/WEB-INF/resources/file")+"/"+fileName; // 这个Excel文件存在的路径
filedownload = filedownload.replace("\\","/");
}
// 要下载的模板所在的绝对路径
response.reset();
response.addHeader("Content-Disposition", "attachment; filename="+URLEncoder.encode(templeteName,"UTF-8"));
//告诉你浏览器下载文件的名称 当为attachment 表示附件下载
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
//这里指发送的什么文件类型
outp = response.getOutputStream();
in = new FileInputStream(filedownload);
byte[] b = new byte[2048];
int i = 0;
while ((i = in.read(b)) > 0) {
outp.write(b, 0, i);
}
outp.flush();
} catch (Exception e) {
System.out.println("Error!");
e.printStackTrace();
} finally {
if (in != null) {
in.close();
in = null;
}
if (outp != null) {
outp.close();
outp = null;
}
}
}

这个时候大家应该就可以做到啦,如果有疑问或好的办法,请在下方评论,谢谢!

Excel 导入时如何下载模板信息(Java)的更多相关文章

  1. Java POI Excel 导入导出

    这个东西很容易懂,不是特别难,难就难在一些复杂的计算和Excel格式的调整上. 近期写了一个小列子,放上来便于以后使用. POI.jar下载地址:http://mirror.bit.edu.cn/ap ...

  2. 关于excel导入手机号提取时被自动加上多余空万国码的问题

    //去除excel粘贴自动加上的空万国码“\U202d” "U202c" //去除excel粘贴自动加上的空万国码“\U202d” "U202c" String ...

  3. Silverlight将Excel导入到SQLserver数据库

    最近纠结于读取Excel模板数据,将数据导入SQLServer的Silverlight实现,本文将实现代码贴出,作为一个简单的例子,方便各位: 1.先设计前台界面新建Silverlight5.0应用程 ...

  4. plsql excel导入报错:未发现数据源名称并且未指定默认驱动程序

        1.情景展示 使用plsql的odbc导入器,导入excel数据时,报错信息如下: anydac 未发现数据源名称如何处理 2.原因分析 操作系统的问题,我的是64位的系统,plsql支持32 ...

  5. imp导入时 出现IMP-00017:由于 ORACLE 错误 6550, 以下语句失败: 解决方法

    cmd命令下--执行imp命令时,出现IMP-00017:由于 ORACLE 错误 6550, 以下语句失败: 解决办法:在imp命令里加入 statistics=none (不导入数据库统计信息) ...

  6. java动态生成带下拉框的Excel导入模板

    在实际开发中,由于业务需要,常常需要进行Excel导入导出操作.以前做一些简单的导入时,先准备一个模板,再进行导入,单有十几. 二十几个导入模板时,往往要做十几.二十几个模板.而且,当在模板中需要有下 ...

  7. excel 导入 下载模板 demo

    import org.apache.commons.beanutils.PropertyUtils;import org.apache.commons.lang3.StringUtils;import ...

  8. 下载模板、Excel导入、导出

    下载模板 /// <summary> /// 下载模板 /// </summary> /// <returns></returns> public Ac ...

  9. vue Excel导入,下载Excel模板,导出Excel

    vue  Excel导入,下载Excel模板,导出Excel vue  Excel导入,下载Excel模板 <template> <div style="display: ...

随机推荐

  1. CF-551-D-树dp/思维

    http://codeforces.com/contest/1153/problem/D 给出一颗有根树,叶子节点可以从1开始赋值但不能相同,每个节点有一个属性max/min表示选择所有儿子值中的ma ...

  2. 4、static

    static (静态的),用来修饰成员. 一.特点: 1.被修饰的方法或变量随着类的加载而加载 2.优先于对象存在 3.被所有的对象共享 4.除了可以被对象调用还可以被类名直接调用 二.类变量.成员变 ...

  3. redhat 7 配置源

    http://blog.51cto.com/eagle2014/1434305 一.准备工作 Vmware Workstation 10.0虚拟机软件(http://www.vmware.com/pr ...

  4. 【nowcoder】 4th T2 区间

    题目链接:https://www.nowcoder.com/acm/contest/175/B 当你为时间复杂度挠头的时候 别人已经33行拿满分了 #include<cstdio> #in ...

  5. Spring Boot(一)

    (一)如何使用IDEA新建一个Spring Boot项目 https://www.cnblogs.com/wmyskxz/p/9010832.html

  6. jquery 之ajax cache

    最近在做一个企业通讯录的功能,功能很简单,我的本意是做数据存储并且做同步更新,时间原因以及服务端的同事更倾向于简单点的方式,呵呵,于是我们就采取了实时查询的方式. 由于get请求有点多,由于页面的生命 ...

  7. Jsoup解析获取品花社图片

    Jsoup解析获取品花社图片 emmmm,闲着没事,想起了之前一个学长做的品花社的APP,刚好之前有了解Jsoup这个Java解析HTML的库,便花了三四个小时写了这个东西,把网站上大大小小的MM的图 ...

  8. MYSQL查询操作 详细

    学习目标 1 掌握select查询所有字段.指定字段的数据 2 掌握消除重复行命令distinct 3 掌握as给字段.表起别名 4 掌握条件查询where后跟比较运算符.逻辑运算符的用法 5 掌握条 ...

  9. 一个通过GINA拦截 盗窃登陆口令的病毒分析

    病毒行为: 1\将资源中的DLL释放到当前目录下 2\设置注册表,将GINA DLL设置为上一步中释放的DLL DLL行为: 1\在DLL被进程装载时, 装载正常的msgina.dll, 并保存句柄, ...

  10. 由数据库表生成jpa实体工具

    package cn.net.yto.aaa.dao.generator; /** * 由数据库表生成jpa实体工具 * * @author huike * Created by gf.liu on ...