response.setContentType("application/vnd.ms-excel");

解决方案 »

  1.   

    如果是做来给用户使用的话,楼主的想法不能实现,因为浏览器的安全限制,最直接的方法是把数据提交到服务器然后再获取
    <%@page contentType="text/html;charset=GBK" language="java" errorPage="" %>
    <%@page import="java.io.*" %>
    <%
        String excelname = request.getParameter( "excelname" );       //输出的excel名
        String exceldata = request.getParameter( "exceldata" );
        String char_set = "8859_1";    if(excelname==null)
            excelname = "temp";
        if(exceldata==null || exceldata.length() <1)
        {   response.setHeader("contentType","content-type:text/html;charset=gb2312");
            exceldata = "";
            exceldata += "<table width=\"311\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">";
            exceldata += "  <tr>";
            exceldata += "    <td><font color=\"#FF0000\">没有获取文档</font></td>";
            exceldata += "    <td><font color=\"#FF0000\">"+ excelname +"</font></td>";
            exceldata += "  </tr>";
            exceldata += "</table>";
            char_set = "GBK";
            out.println(exceldata);
            return;
        }
        else
            response.setContentType("application/vnd.ms-excel");
        
        //out.print( exceldata );
        java.io.OutputStreamWriter osw = new OutputStreamWriter(response.getOutputStream(),char_set);
        java.io.Reader rd = new java.io.StringReader(exceldata);
        char [] buff = new char[4096];
        int bsize;
        while( (bsize =(rd.read(buff))) != -1)
        {
            osw.write(buff,0,bsize);
        }
        rd.close();
        osw.flush();
        osw.close();
    %>
      

  2.   

    GetXLS.asp
    <%@ language="VBScript" codepage="936"%>
    <%
    Response.ContentType = "application/vnd.ms-excel"
    Response.Charset = "GBK"
    Response.AddHeader "Content-Disposition", "attachment; filename=abc.xls"Dim data
    data = Request.Form("data")
    %>
    <html xmlns:o="urn:schemas-microsoft-com:office:office"
    xmlns:x="urn:schemas-microsoft-com:office:excel"
    xmlns="http://www.w3.org/TR/REC-html40">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK">
    <meta name="ProgId" content="Excel.Sheet">
    <meta name="Generator" content="Microsoft Excel 11">
    <!--[if gte mso 9]><xml>
     <x:ExcelWorkbook>
      <x:ExcelWorksheets>
       <x:ExcelWorksheet>
        <x:Name>Sheet1</x:Name>
        <x:WorksheetOptions>
         <x:DefaultRowHeight>285</x:DefaultRowHeight>
         <x:Selected/>
         <x:Panes>
          <x:Pane>
           <x:Number>3</x:Number>
           <x:ActiveRow>2</x:ActiveRow>
           <x:ActiveCol>1</x:ActiveCol>
          </x:Pane>
         </x:Panes>
         <x:ProtectContents>False</x:ProtectContents>
         <x:ProtectObjects>False</x:ProtectObjects>
         <x:ProtectScenarios>False</x:ProtectScenarios>
        </x:WorksheetOptions>
       </x:ExcelWorksheet>
      </x:ExcelWorksheets>
      <x:WindowHeight>9090</x:WindowHeight>
      <x:WindowWidth>11715</x:WindowWidth>
      <x:WindowTopX>240</x:WindowTopX>
      <x:WindowTopY>90</x:WindowTopY>
      <x:ProtectStructure>False</x:ProtectStructure>
      <x:ProtectWindows>False</x:ProtectWindows>
     </x:ExcelWorkbook>
    </xml><![endif]-->
    </head>
    <body>
    <table border="1" cellspacing="1" cellpadding="1">
      <%=data%>
    </table>
    </body>
    </html>index.htm
    <html>
    <head>
    <meta http-equiv=Content-Type content="text/html; charset=GBK">
    </head>
    <body>
    <form onsubmit="this.data.value=document.getElementById('tab1').innerHTML" action="GetXLS.asp" target="_blank" method="post" style="margin:0;">
      <input type="hidden" name="data" value="" />
      <table id="tab1" border="1" cellspacing="1" cellpadding="1">  
         <tr><td colspan="5" align="center">WEB页面导出为EXCEL文档的方法</td></tr>
         <tr>
             <td>列标题1</td>
             <td>列标题2</td>
             <td>列标题3</td>
             <td>列标题4</td>
             <td>列标题5</td>
         </tr>
         <tr>
             <td>aaa</td>
             <td>bbb</td>
             <td>ccc</td>
             <td>ddd</td>
             <td>eee</td>
         </tr>
         <tr>
             <td>AAA</td>
             <td>BBB</td>
             <td>CCC</td>
             <td>DDD</td>
             <td>EEE</td>
         </tr>
         <tr>
             <td>FFF</td>
             <td>GGG</td>
             <td>HHH</td>
             <td>III</td>
             <td>JJJ</td>
         </tr>
      </table>
      <input type="submit" value="导出" />
    </form>
    </body>
    </html>
      

  3.   


    <%
    Response.ContentType = "application/vnd.ms-excel"
    Response.Charset = "GBK"
    Response.AddHeader "Content-Disposition", "attachment; filename=abc.xls"楼上的在ASP页面加上这段代码后 页面上所有的内容都被导出了 这样不好