大家知道,我们在实现 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. linux-基础命令篇-01

    基本命令: who:目前有谁在在线 netstat -a:网络的联机状态 ps -aux:背景运行的程序 sync:将数据同步写入硬盘中的命令 shutdown:惯用的关机命令 reboot, hal ...

  2. 转入墙内:SAS HBA crossflashing or flashing to IT mode, Dell Perc H200 and H310

    Default firmware for this guide is:2118it.binVersion 20.00.07.00Release date: 11-FEB-16 所有资源已转到百度盘: ...

  3. jquery横向纵向鼠标滚轮全屏切换

    html <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF- ...

  4. 微信和QQ内置浏览器为什么老是弹停止访问该网页,微信域名被屏蔽的解决办法

    近来很多商家开始重视域名防封的技术了,为什么呢,因为实在是封怕了.三天两头就得去换域名,换域名是小事,用户流失就是大事了,直接跟利益挂钩的.那么域名防封技术究竟有多重要呢?又该如何实现域名防封呢?下面 ...

  5. .gitconfig

    [user] name = 1111 email = 111@111.com[credential] helper = store

  6. ThreadLocal之我所见

    网上有很多关于ThreadLocal的文章,大部分都提到了多线程之间共享资源的问题.其实ThreadLocal和多线程之间一点关系都没有.如果有,我怕是它的名字改成ThreadShare是不是更合适呢 ...

  7. C#或unity中实现正弦函数

    C#或unity中实现正弦函数 本类用于第一,需要绘制一条正弦曲线的朋友:第二,需要根据正弦曲线控制物体运动的朋友:里面都有注释,代码如下: unity中使用的代码: public class Cur ...

  8. MYSQL查询操作 详细

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

  9. git add.后回退 代码丢失

    记录一次操作git丢失代码的过程: 写完代码后:git staus git add. git status 发现有一堆.class 文件不想提交,想着代码回退到add 之前,使用了 git log 开 ...

  10. 数据结构复习之Vector

    /** * The number of times this list has been <i>structurally modified</i>. * Structural ...