程序调试通过
filename不包括路径
<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="ISO-8859-1"%>
<%
response.setContentType("application/vnd.ms-excel");
response.setHeader("Location","myexcel.xls");
response.setHeader("Cache-Control","max-age=" + 1000);
response.setHeader("Content-Disposition","attachment; filename=" + "myexcel.xls"); 
File ex=new File("E:\\myexcel.xls");
int len=(int)ex.length();
response.setContentLength(len);
OutputStream outputStream = response.getOutputStream();
InputStream inputStream = new FileInputStream("E:\\myexcel.xls");
byte[] buffer = new byte[1024];
 int i = -1;
 while ((i = inputStream.read(buffer)) != -1) {
  outputStream.write(buffer, 0, i);
  }
 outputStream.flush();
 outputStream.close();
 inputStream.close();
 outputStream = null;
%>

解决方案 »

  1.   

    我在家里用两台电脑测试,一台当服务器,另一台就可以弹出对话框时点击“打开”,从而打开EXCEL文件!!
    一样的程序,为什么有时可以,而有时不可以??
    难道公司的服务器有某种权限??
      

  2.   

    谢谢各位,问题已经解决!!
    response.setContentType("application/vnd.ms-excel");
    String fileBar = System.getProperty("file.separator");
    response.addHeader("Content-Disposition","attachment;   filename=" + fileBar + fileName);加上系统的文件分隔符就可以了
    希望对二楼有所帮助!!
      

  3.   

    在一个temp文件夹下,而且名字机器古怪!其实你何必管它呢!呵呵!你可以在Excel里面另存为,就看到了!