~-~ 我等谁给你解决了  我也顺便学习学习呢~~嘿嘿 
我还以为是我的IIS的问题呢

解决方案 »

  1.   

    打开客户端的资源浏览器(不是IE呀),工具--〉文件夹选项-->文件类型
    找到并选择XLS类型,点[高级]按钮。你就会看到在下面有三个复选项,选择其中的[下载后确认打开]项,你的问题就可以解决。
      

  2.   

    在服务端(java)这样写:
    如果你是struts架构在XXXXAction中写法如下
    if (actionKind.equals("oneprojecter")) {
    response.setContentType("application/vnd.ms-excel");
    if ((PID == null) || (PID.equals(""))) {
      //转向错误页面显示错误信息
       System.err.println("请传入关键字ID!");
    }
    BuildExcel fbr = new BuildExcel(PID, conn);//conn是数据库连接
    OutputStream os = response.getOutputStream();
    String path =servlet.getServletContext().getRealPath(
    "/TemplateDoc/book.xlt");
             //book.xlt中模板
    try {
    fbr.writeTo(path, os);//将内容写到book.xlt模板对象中
    os.close();
    } catch (Exception e) {
    os.close();
    throw new ServletException(e);
    }
    return null;
    }
    如果是在servlet中:只需将"return null;"去掉即可。
    如果你的服务端是ASP的话:
    response.setContentType("application/vnd.ms-excel")这句话是必须的。
    处理方法是一样的,写法也类似。
      

  3.   

    点击的时候,刷新本页面,把本页面需要传递的参数都传一遍,如index.asp?a=1&b=2&c=3&file="../d.xls",在本页面的初始化部分判断是否是点击excel连接刷新的。就是得到的file是否为空,如果不为空,根据传过来的地址用javascript写一个window.open的语句打开这个地址的文件,就会提示下载excel文件。
    虽然繁琐,可以解决问题
      

  4.   

    header("Content-disposition: filename=file.xls");
    header("Content-type: application/octetstream");
    header("Pragma: no-cache");
    header("Expires: 0");