怎样才能实现下载Excel文件??? 用response 开流方式 设置好contentType这个mime头信息流写到客户端就可以了你可以去FAQ看看。有下载的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 response.setContentType("application/x-msdownload"); response.setHeader("Content-disposition","attachment; filename=xxx.xls" ); response.setContentType("application/x-msdownload"); response.setHeader("Content-disposition","attachment; filename=xxx.xls" ); response.sendRedirect("/TransferSave.xls");二楼的是不是这样写。还是不行,IE还是把它打开了。没有弹出下载对话框 楼上的 在web.xml里修改配置 ??怎样修改????能不能说清楚一些??谢了 就response.setContentType("application/x-msdownload"); response.setHeader("Content-disposition","attachment; filename=xxx.xls" );就好了,不要重定向直接结束,IE会自动下载的 楼上的,response.setContentType("application/x-msdownload"); response.setHeader("Content-disposition","attachment; filename=/TransferSave.xls" );我把xxx.xls替换成了要下载文件的文件名.这样写,下载对话框确实弹出了。但数据没有下载下来,只是一个空文件。 PrintWriter os = response.getWriter();然后 读取文件 将内容写入os 我倒是实现了,但很麻烦.大家帮改改.OutputStream osOut = null;File fIn = null;Workbook wbFile = null;WritableWorkbook wwbFile = null;osOut = response.getOutputStream(); response.reset();fIn = new File("filename");wbFile = Workbook.getWorkbook(fIn);/* 设定输出文件头 */response.setHeader("Content-disposition", "attachment; filename=" + filename);/* 定义输出类型 */response.setContentType("application/msexcel");wwbFile = Workbook.createWorkbook(osOut,wbFile);wwbFile.write();wwbFile.close();wbFile.close();fIn.delete();osOut.close(); 如果是现成的文件,并且在站点目录下,在页面上加一个链接,直接链接地址就行(最好是英文文件名),如果不在此目录下,用time_djb(菜鸟) 的方法如果自己生成此文件如下:<%response.setContentType("application/msexcel");response.setHeader("Content-disposition", "attachment; filename=" + filename);%><html>//同通常的页面一样,只是不要有脚本、链接等</html> import java.io.*;import java.net.MalformedURLException;import javax.servlet.ServletException;import javax.servlet.ServletResponse;import javax.servlet.http.*; public class HelloWorldExample extends HttpServlet{ public HelloWorldExample() { } public void doGet(HttpServletRequest request, HttpServletResponse res) throws IOException, ServletException { javax.servlet.ServletOutputStream out = res.getOutputStream(); res.setContentType("application/pdf"); res.setHeader("Content-disposition", "attachment; filename=Example.pdf"); BufferedInputStream bis = null; BufferedOutputStream bos = null; try { FileInputStream fin = new FileInputStream("c:\\Reader.pdf"); bis = new BufferedInputStream(fin); bos = new BufferedOutputStream(out); byte buff[] = new byte[2048]; int bytesRead; while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) bos.write(buff, 0, bytesRead); } catch(MalformedURLException e) { System.out.println("MalformedURLException."); throw e; } catch(IOException e) { System.out.println("IOException."); throw e; } finally { if(bis != null) bis.close(); if(bos != null) bos.close(); } }}这是一个经过测试的 没有 错误的例子。我们的下载都是这么 作的。例子中是pdf 文件,你只要改动 setHeadersetContentType 就可以使用了。 Firefox 乱码,非一般的,大家有没遇到这种情况? 可否在二个结果集里操作(取得)数据? 关于环境变量 EL表达式取值 求救~!<selete>提交多个值的问题。~~!!! 页面超时问题! 请问:有没有一个方法得到某一年的第几周的最后一天是这一年的几月几号?请高手指点!谢谢! 验证码怎样破译? 谁知道那个图形化的Struts配置工具最好用? 怎么实现这中功能的? 这个SELECE语句这样写可以吗? SmartUpload组件下载中文文件名一直没有解决的问题.
response.setHeader("Content-disposition","attachment; filename=xxx.xls" );
response.setHeader("Content-disposition","attachment; filename=xxx.xls" );
response.sendRedirect("/TransferSave.xls");
二楼的是不是这样写。还是不行,IE还是把它打开了。没有弹出下载对话框
谢了
response.setHeader("Content-disposition","attachment; filename=xxx.xls" );
就好了,不要重定向
直接结束,IE会自动下载的
response.setHeader("Content-disposition","attachment; filename=/TransferSave.xls" );
我把xxx.xls替换成了要下载文件的文件名.
这样写,下载对话框确实弹出了。但数据没有下载下来,只是一个空文件。
然后 读取文件 将内容写入os
File fIn = null;
Workbook wbFile = null;
WritableWorkbook wwbFile = null;osOut = response.getOutputStream();
response.reset();
fIn = new File("filename");
wbFile = Workbook.getWorkbook(fIn);
/* 设定输出文件头 */
response.setHeader("Content-disposition", "attachment; filename=" + filename);
/* 定义输出类型 */
response.setContentType("application/msexcel");wwbFile = Workbook.createWorkbook(osOut,wbFile);
wwbFile.write();
wwbFile.close();
wbFile.close();
fIn.delete();
osOut.close();
如果自己生成此文件如下:
<%
response.setContentType("application/msexcel");
response.setHeader("Content-disposition", "attachment; filename=" + filename);
%>
<html>
//同通常的页面一样,只是不要有脚本、链接等
</html>
import java.net.MalformedURLException;
import javax.servlet.ServletException;
import javax.servlet.ServletResponse;
import javax.servlet.http.*;
public class HelloWorldExample extends HttpServlet
{
public HelloWorldExample()
{
}
public void doGet(HttpServletRequest request, HttpServletResponse res)
throws IOException, ServletException
{
javax.servlet.ServletOutputStream out = res.getOutputStream();
res.setContentType("application/pdf");
res.setHeader("Content-disposition", "attachment; filename=Example.pdf");
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try
{
FileInputStream fin = new FileInputStream("c:\\Reader.pdf");
bis = new BufferedInputStream(fin);
bos = new BufferedOutputStream(out);
byte buff[] = new byte[2048];
int bytesRead;
while(-1 != (bytesRead = bis.read(buff, 0, buff.length)))
bos.write(buff, 0, bytesRead);
}
catch(MalformedURLException e)
{
System.out.println("MalformedURLException.");
throw e;
}
catch(IOException e)
{
System.out.println("IOException.");
throw e;
}
finally
{
if(bis != null)
bis.close();
if(bos != null)
bos.close();
}
}
}这是一个经过测试的 没有 错误的例子。
我们的下载都是这么 作的。
例子中是pdf 文件,
你只要改动 setHeader
setContentType 就可以使用了。