public static void GenerateByHtmlString(string Typename, string TempHtml)
        {
            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.Buffer = true;
            HttpContext.Current.Response.Charset = "utf-8";
            string Filename = Typename + ".xls";
            HttpContext.Current.Response.AppendHeader("Content-Disposition", "online;filename=" + Filename);
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
            HttpContext.Current.Response.ContentType = "application/ms-excel";
            //this.EnableViewState = false;
            HttpContext.Current.Response.Write(TempHtml);
            HttpContext.Current.Response.End();
        }Typename为导出的文件名,TempHtml为HTML字符串

解决方案 »

  1.   

    http://www.readygo.com.cn/ASP/070205/215450xJI8.htm
      

  2.   

    我的asp.net文件如下:<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
    <%@ Import Namespace="System" %>
    <%@ Import Namespace="System.Data.SqlClient" %>
    <%@ Import Namespace="cn.alading.shoot" %>
    <script language="C#" runat="server">
    SqlDataReader dr ;
    public void Page_Load(Object Source, EventArgs E) {
    if (!IsPostBack){
    Report dd = new Report();
    dr = dd.GetStockInfo(1);
    }
    }
    void btnOkClick(Object Source, EventArgs E){
    Report dd = new Report();
    dr = dd.GetStockInfo(int.Parse(ddlField.SelectedItem.Value));
    }
    </script><html>
    <head>
    <title>中国明辉</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <link href="css2/style.css" rel="stylesheet" type="text/css" />
    <script language="javascript" src="common/calendar.js"></script>
    <script language="javascript" src="common/common.js"></script>
    </head>
    <body>
    <br>
    <form id="form1" runat="server">
    <table align="center" width="90%"  border="1"  cellpadding="2" cellspacing="0">
    <tr>
    <td>搜索条件:
    <asp:DropDownList id="ddlField" width="80" runat="server" >
    <asp:ListItem Value="1">成品</asp:ListItem>
    <asp:ListItem Value="2">柴油机</asp:ListItem>
    <asp:ListItem Value="3">发动机</asp:ListItem>
    </asp:DropDownList>&nbsp;&nbsp;&nbsp;&nbsp;
    <asp:Button id="btnOk" Text=" 查询 " onclick="btnOkClick" runat="server" />
    </td>
    </tr>
    </table>
    <br>

    <table align="center" width="90%"  border="1"  cellpadding="2" cellspacing="1"  bgcolor="#FFFFFF">
    <tr align="center" height="25"  class="ListTitle">
    <td>序号</td>
    <%
    for (int i = 0; i < dr.FieldCount ; i++){
    Response.Write("<td>" + dr.GetName(i)+ "<//td>");
    }
    %>
    </tr>
    <%
    int j = 0;
    int num = 1;
    int[] sum = new int[dr.FieldCount];
    while(dr.Read()){
    if(j%2==0){
    Response.Write("<tr height='20'>");
    Response.Write("<td align='center'>" + (num++) + "<//td>");
    }else{
    Response.Write("<tr class='ListTitle1' height='20'>");
    Response.Write("<td align='center'>" + (num++) + "<//td>");
    }
    for (int i = 0; i < dr.FieldCount ; i++){

    if(i >= 4 && i < dr.FieldCount){
    if (dr.GetValue(i) != null && dr.GetValue(i) != System.DBNull.Value){
    sum[i] = sum[i] + int.Parse(dr.GetValue(i).ToString());
    }
    }
    Response.Write("<td align='center'>" + dr.GetValue(i)+ "<//td>");
    }
    Response.Write("<//tr>");
    j++;
    }
    Response.Write("<tr height='20'>");
    Response.Write("<td align='center'>合计</td>");
    Response.Write("<td colspan='4'></td>");
    for(int k = 4; k < dr.FieldCount; k++){
    Response.Write("<td align='center'>" + sum[k] + "<//td>");
    }
    Response.Write("<//tr>");
    %>
    </table >

    </table>
    </form>
    </body>
    <%dr.Close();%>
    </html>
      

  3.   

    楼主用ASP的方法写.NET
    那个赤脚医生教的啊
      

  4.   

    1.通过DataSet输出XML与XSLT结合生成CSV文件
    2.CSV文件可以另存为Excel
    3.也可以通过指定控件的HTML通过Excel互操作组件输出到Excel文档
      

  5.   

    在c#版精华贴里边有一篇文章讲 利用文件结构导出excel,你可以用这个代码在一般处理过程(ashx)中把流写出来就可以了