Response.Write("<table border=1 width=500 cellspacing=1 bordercolorlight=#000000 bordercolordark=#000000 style='border-collapse: collapse' id=table1>");
        Response.Write("<!-- MSTableType=nolayout -->");
        Response.Write("<tr>");
Response.Write("<td align=center width=250><font size=2>ID号</font></td>");
Response.Write("<td align=center width=250><font size=2>姓名</font></td>");
Response.Write("</tr>");
Response.Write("<tr>");
Response.Write("<td align=center width=250><font size=2>1001</font></td>");
Response.Write("<td align=center width=250><font size=2>dallascen</font></td>");
Response.Write("</tr>");
Response.Write("<tr>");
Response.Write("<td align=center width=250><font size=2>1002</font></td>");
Response.Write("<td align=center width=250><font size=2>Ion</font></td>");
Response.Write("</tr>");
Response.Write("</table>");
是我动态的写在PAGE_LOAD事件中的代码,页面加载时显示出表格。页面上另有一个按钮,点击后将整个页面导出到EXCEL,CSDN上现有的导出到EXCEL的代码不好用,导出的效果是,按钮在EXCEL中显示,但是其他应显示的数据都没有,整个EXCEL上就显示一个按钮,请问大家怎么能把用response画出来的表格导出来呢?

解决方案 »

  1.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    Response.Clear();
    Response.ContentType = "application/ms-excel";
    Response.Write("<table border=1 width=500 cellspacing=1 bordercolorlight=#000000 bordercolordark=#000000 style='border-collapse: collapse' id=table1>");
            Response.Write("<!-- MSTableType=nolayout -->");
            Response.Write("<tr>");
    Response.Write("<td align=center width=250><font size=2>ID号</font></td>");
    Response.Write("<td align=center width=250><font size=2>姓名</font></td>");
    Response.Write("</tr>");
    Response.Write("<tr>");
    Response.Write("<td align=center width=250><font size=2>1001</font></td>");
    Response.Write("<td align=center width=250><font size=2>dallascen</font></td>");
    Response.Write("</tr>");
    Response.Write("<tr>");
    Response.Write("<td align=center width=250><font size=2>1002</font></td>");
    Response.Write("<td align=center width=250><font size=2>Ion</font></td>");
    Response.Write("</tr>");
    Response.Write("</table>");
    Response.End();
    }
      

  2.   

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
       Dim dt As DataTable = CType(Application.Item("MyDataTable"), DataTable) 
       
       Response.ContentType = "application/ms-Excel" 
       
       Response.AddHeader("Content-Disposition", "inline;filename=test.xls") 
       
       Response.Write(ConvertDtToTDF(dt)) 
      End Sub 
       
      Private Function ConvertDtToTDF(ByVal dt As DataTable) As String 
       Dim dr As DataRow, ary() As Object, i As Integer 
       Dim iCol As Integer 
       
       ' 输出列标题 
       For iCol = 0 To dt.Columns.Count - 1 
        Response.Write(dt.Columns(iCol).ToString & vbTab) 
       Next 
       Response.Write(vbCrLf) 
       
       '输出数据 
       For Each dr In dt.Rows 
        ary = dr.ItemArray 
        For i = 0 To UBound(ary) 
         Response.Write(ary(i).ToString & vbTab) 
        Next 
        Response.Write(vbCrLf) 
       Next 
      End Function 
      End Class 
      

  3.   

    例子<%@ Page validateRequest="false" %>
    <script language="C#" runat="server">
    void Page_Load(Object sender,EventArgs e)
    {
    Response.Clear();
    Response.Buffer=true;
    Response.AppendHeader("Content-Disposition","attachment;filename=FileName.xls"); 
    Response.ContentType = "application/ms-excel";
    Response.Write("<table border=1 width=500 cellspacing=1 bordercolorlight=#000000 bordercolordark=#000000 style='border-collapse: collapse' id=table1>");
    Response.Write("<!-- MSTableType=nolayout -->");
    Response.Write("<tr>");
    Response.Write("<td align=center width=250><font size=2>ID号</font></td>");
    Response.Write("<td align=center width=250><font size=2>姓名</font></td>");
    Response.Write("</tr>");
    Response.Write("<tr>");
    Response.Write("<td align=center width=250><font size=2>1001</font></td>");
    Response.Write("<td align=center width=250><font size=2>dallascen</font></td>");
    Response.Write("</tr>");
    Response.Write("<tr>");
    Response.Write("<td align=center width=250><font size=2>1002</font></td>");
    Response.Write("<td align=center width=250><font size=2>Ion</font></td>");
    Response.Write("</tr>");
    Response.Write("</table>");
    Response.End();
    }
    </script>
      

  4.   

    对啊,先输出HTML表格,然后象孟老大那样的做法用Response.Buffer=true;
    Response.AppendHeader("Content-Disposition","attachment;filename=FileName.xls"); 
    Response.ContentType = "application/ms-excel";
      

  5.   

    这样不就是等于是页面换成EXCEL格式嘛!
      

  6.   

    谢谢大家,解决了~但是有一段代码要加上:
    Response.Clear();
    Response.Buffer=true;
    Response.AppendHeader("Content-Disposition","attachment;filename=FileName.xls");
    Response.Charset ="GB2312";
    Response.ContentEncoding =System.Text.Encoding.Default; 
    Response.ContentType = "application/ms-excel";
    大家要注意这段,如果没有的话,页面会出乱码~~谢谢大家,谢谢~~