2 justinliuliwen justinliuliwen 于 2017.01.07 01:00 提问

7个回答

welan123123
welan123123   2017.01.07 08:55
已采纳

你这个问题有很多解决办法,第一个:没必要弹出下载提示,点击后生成excel直接输出,实现下载,以下是参考代码

             response.setContentType("application/msexcel;");                
            response.setHeader("Content-Disposition", new String(("attachment;filename="+"error.xls").getBytes("GB2312"), "UTF-8"));  

            File f = new File("d:/20121211165820140_err.xls");  
            //File f = new File(targetFolder.getPath()+File.separator+fName);  
            FileInputStream in = new FileInputStream(f);  
            byte b[] = new byte[1024];  
            int i = 0;  
            ServletOutputStream out = response.getOutputStream();  
            while((i=in.read(b))!=  -1){  
                out.write(b, 0, i);  
            }  
            out.flush();  
            out.close();  
            in.close();  

第二种:保留下载提示,生成excel后把它保存到服务器然后再把地址传给前台,不推荐这种方法,就像脱裤子放屁一样

 File path=new File(Util.DOWNLOAD+"导出Excel");//创建文件夹 
 if(!path.exists()) { 
 path.mkdirs();//不存在该路径则自动生成            }
String path1 = Util.DOWNLOAD+"/导出Excel"+File.separator+filename+".xls";  
FileOutputStream fileout = new FileOutputStream(path1); 
wb.write(fileout);
fileout.flush(); 
fileout.close(); 
return name+".xls"

HTML中:
window.location.href = path;//path就是返回的name+".xls"
welan123123
welan123123 回复justinliuliwen: 你这种想法就有点逗了,代码还是要自己写的,其他人又没有你的项目源码,怎么可能给出具体的
一年多之前 回复
justinliuliwen
justinliuliwen 好吧,可行,其实百度都有,只是不想动手,来这悬赏让别人给具体的!惭愧,你可以试一试,要是把方法里的代码给我打桩输出前端会显示找不到。
一年多之前 回复
justinliuliwen
justinliuliwen 回复奔跑的小鱼儿: 我用<a> href="excelExport.do"不能直接访问404,href里面只能写资源文件地址
一年多之前 回复
justinliuliwen
justinliuliwen 回复奔跑的小鱼儿: 能把前端代码发下不
一年多之前 回复
welan123123
welan123123 回复justinliuliwen: 你确定你后台代码都懂了吗,第一种你修改excelExport.do方法,前端就直接调用excelExport.do方法后就开始下载了
一年多之前 回复
justinliuliwen
justinliuliwen 我后台代码都懂,不知道的是前端怎么写,对前端不熟,你说下第一种的前端怎么写,测试了通过,就采纳你了
一年多之前 回复
caozhy
caozhy   Ds   Rxr 2017.01.07 01:58

java生成的为什么没有url?就是你jsp获得请求并且返回文件的那个http资源作为你的url

sun1021873926
sun1021873926   Ds   Rxr 2017.01.07 05:49

需要使用a标签,传递也就是下载的过程,把你生成的excel转化成流,写到response中。

zjn640322
zjn640322   2017.01.07 08:16

java生成的,后台的话一般是servlet或者是action,你直接把访问他们就可以啊,访问他们,同样是在完成文件传送,都是流在处理数据,一样的。
1.以前你访问的直接是文件在服务器中的资源链接,访问的时候,浏览器会将文件从文件流中读取下来,保存到本地
2.现在用java写,你后台访问要么是servlet要么是action,直接访问他们,他们也是在返回相应的数据给你,处理都是一样的。

JE_GE
JE_GE   2017.01.07 09:57
justinliuliwen
justinliuliwen   2017.01.07 10:10

重点是我前端不知道怎么写,谁能告诉我前端怎么写,《a》href不能直接写方法的url.

welan123123
welan123123   2017.01.07 11:15

你后端用的是什么框架,springmvc吗?a标签herf能访问方法的 href="<%=basePath%>/这里还要补全/excelExport.do"
下面的代码放在html里面,目的是自动获取地址,开发时等于"localhost:8080"
<%
String basePath = request.getContextPath();
%>

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
EXCEL无法使用日期控件解决方法
excel中没有日期控件的解决方法 缺少microsoft date and time picker control 6.0(sp4) 拷贝Mscomct2.ocx文件到C:\WINDOWS\system32目录下 如果该目录下有此文件则直接替换 如果该目录下没有此文件,则把文件放入目录下后,点击“运行”,输入regsvr32 Mscomct2.ocx命令注册该控件,注册后可正常使用。
angularjs 通过http下载php生成的excel的方法
使用PHPExcel插件的同学们都知道,导出excel是直接将生成内容修改content-type来将内容作为文件下载的,这时候需要页面上有一个url,通过点击来下载。 那么问题来了,如果在生成excel时有请求参数,只能通过js的http请求,这时候怎么下载呢? 研究了一下,有以下集中方式: angularjs创建a标签模拟下载。 // 创建a标签模拟下载 function exportEx
ajax无法实现导出excel
用ajax导出不会弹出下载框 ajax 其实只是一个javascript中的一个组建 XmlHttpRequest, 他的作用是数据交互, 返回数据是组建内部处理的, 下载是需要浏览器识别http头的。 点击事件促发异步请求,在响应中,设置响应头和体,在用response在输出流,写到响应中,弹出下载框是设置了响应头和体,才能弹出!
Excel右键删除功能不可用
今天碰到一奇怪问题,Excel右键删除功能不可用,是灰色的,其他都可用。经过一番google,得知解决方案如下: 1 退出EXCEL 2 进入 "C:\Users\你的电脑用户名\AppData\Roaming\Microsoft\Excel"文件夹(此路径为Win7环境下的路径) 如果是其他系统或者自己改过路径,请看下面这个办法,新建一个excel,点击文件>>>另存为>>>保存类型选择Exce
使用Apache POI 进行Excel报表的导出下载(GET 请求 && POST请求)
简介:之前项目有这样的需求:按各种条件进行筛选数据,然后导出Excel到本地 针对条件条件很少的情况下,使用的是GET请求的方式,直接在URL上拼接请求参数,这种形式很简单就能导出Excel。但是当条件很多很复杂时,就不适合使用GET请求的方式了,所以我使用了POST请求的方式,在这其中遇到了各种问题,估计大家也可能遇见到了。 遇到问题: 请求数据传递正确,数据获取正确,Excel构建也没...
使用POI生成Excel并进行流下载(不需在服务器上保存)
public JsonResponse export(HttpServletRequest request, HttpServletResponse response, LoginModel loginModel) { JsonResponse jr = new JsonResponse(); jr.setSuc(JsonResponse.FAIL);
ajax不可以用来做poi的浏览器导出excel,可以用springMvc、strust2和servlet
function exportExcel(){         location.href="excel/export";              }
导出excel表格到本地服务器, 远程下载 Java
/* 生成Excel表格并导出 */ public static void excel(List logs) { //导出路径,导出到服务器 //路径格式是windows系统 String url = “D:\card\java\weChat\target\lonbon\card.xls”;
从服务器上导出excel文件到本地
<br />在一个excel工作簿中,有5个工单表,每个工作表有1万行数据。<br /><br />-------------------------------------------------------------------------------------------- <br />使用的jar包在附件中。 <br /><br />效果如图: <br /><br /><br />Jsp代码  <%@ page language="java" pageEncoding="GBK"%>   <%
灵活的导出数据到Excel类,服务器不需要安装Excel组件
本工程基于.Net Framework2.0 工程中ExcelXML.cs包含所需要用到的所有类、它通过微软开放的Excel XML格式生成Excel文件,因此服务端无需要安装Office相关组件即可运行。 通过本类,可以方便地向工作簿添加/删除/修改工作表以及为工作表追加行记录。同时,还可以灵活地指定数据格式(目前暂不支持日期格式)。 使用方法在Default.aspx.cs有详细的示例。 ----笔锋侠