Excel 导入时如何下载模板信息(Java)
大家知道,我们在实现 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)的更多相关文章
- Java POI Excel 导入导出
这个东西很容易懂,不是特别难,难就难在一些复杂的计算和Excel格式的调整上. 近期写了一个小列子,放上来便于以后使用. POI.jar下载地址:http://mirror.bit.edu.cn/ap ...
- 关于excel导入手机号提取时被自动加上多余空万国码的问题
//去除excel粘贴自动加上的空万国码“\U202d” "U202c" //去除excel粘贴自动加上的空万国码“\U202d” "U202c" String ...
- Silverlight将Excel导入到SQLserver数据库
最近纠结于读取Excel模板数据,将数据导入SQLServer的Silverlight实现,本文将实现代码贴出,作为一个简单的例子,方便各位: 1.先设计前台界面新建Silverlight5.0应用程 ...
- plsql excel导入报错:未发现数据源名称并且未指定默认驱动程序
1.情景展示 使用plsql的odbc导入器,导入excel数据时,报错信息如下: anydac 未发现数据源名称如何处理 2.原因分析 操作系统的问题,我的是64位的系统,plsql支持32 ...
- imp导入时 出现IMP-00017:由于 ORACLE 错误 6550, 以下语句失败: 解决方法
cmd命令下--执行imp命令时,出现IMP-00017:由于 ORACLE 错误 6550, 以下语句失败: 解决办法:在imp命令里加入 statistics=none (不导入数据库统计信息) ...
- java动态生成带下拉框的Excel导入模板
在实际开发中,由于业务需要,常常需要进行Excel导入导出操作.以前做一些简单的导入时,先准备一个模板,再进行导入,单有十几. 二十几个导入模板时,往往要做十几.二十几个模板.而且,当在模板中需要有下 ...
- excel 导入 下载模板 demo
import org.apache.commons.beanutils.PropertyUtils;import org.apache.commons.lang3.StringUtils;import ...
- 下载模板、Excel导入、导出
下载模板 /// <summary> /// 下载模板 /// </summary> /// <returns></returns> public Ac ...
- vue Excel导入,下载Excel模板,导出Excel
vue Excel导入,下载Excel模板,导出Excel vue Excel导入,下载Excel模板 <template> <div style="display: ...
随机推荐
- 【论文速读】Multi-Oriented Scene Text Detection via Corner Localization and Region Segmentation[2018-CPVR]
方法概述 该方法用一个端到端网络完成文字检测整个过程——除了基础卷积网络(backbone)外,包括两个并行分支和一个后处理.第一个分支是通过一个DSSD网络进行角点检测来提取候选文字区域,第二个分支 ...
- cmd命令往MySQL数据库提交数据
第一步:MySQL -V检查下载成功否第二步:mysql -u root -p 登陆密码第三步:创建一个数据库 create database if not exists 数据库name: 第四步:展 ...
- 使用 dva 如何配置异步加载路由组件
来源:https://www.jianshu.com/p/69694013e36b----------------------------------------------------- 普通方式 ...
- Introduction and use of Cookie and Session(Cookie&Session的介绍和使用)
一.Cookie 1.什么是Cookie? Cookie是HTTP协议的规范之一,它是服务器和客户端之间传输的小数据. 首先由服务器通过响应头把Cookie传输给客户端,客户端会将Cookie保存起来 ...
- bind与继承 待研究
class a { f() { console.log('a') } get f2() { console.log('f2') return (this['f'] = this.f.bind(this ...
- crontab 每分钟、每小时、每天、每周、每月、每年执行
每分钟执行 * * * * * 每小时执行 0 * * * * 每天执行 0 0 * * * 每周执行 0 0 * * 0 每月执行 0 0 1 * * 每年执行 0 0 1 1 * 每小时的第3和第 ...
- 使用MobaXterm远程连接Ubuntu,启动Octave,界面不能正常显示
使用MobaXterm远程连接Ubuntu,启动Octave,界面不能正常显示,键盘输入无法显示,解决方法如下. 在启动octave之前,输入这两个命令: export GTK_MODULES=gai ...
- utf8与utf8mb4的区别
最近在写一个爬虫的多线程脚本,在异步插入数据库的时候总有部分数据插入失败,原因竟然是编码的问题.扪心自问,mysql最通用的中文字符编码就是utf-8了,通常情况下,utf-8作为中文编码是司空见惯的 ...
- implode() 数组元素组合函数
定义和用法 implode() 函数把数组元素组合为一个字符串. 语法:implode(separator,array); 说明 虽然 separator 参数是可选的.但是为了向后兼容,推荐您使用使 ...
- jdbc模板
public class JdbcTest { public static void main(String[] args) { //数据库连接 Connection connection = nul ...