如何将DataGrid中的数据导出为excel文件?
请大哥们指点,给出代码!

解决方案 »

  1.   

    http://dotnet.aspx.cc/article/8a4cbf47-b888-4832-3389-ed3a3a3c8aab/read.aspx
      

  2.   

    http://community.csdn.net/Expert/topic/4905/4905809.xml?temp=.27969
      

  3.   

    Reponse.ContentType="alllication/vnd.excel"; Response.Cah 
    Response.Charset = ""; 
    EnableViewState= false;
    System.IO.StringWriter tw= new System.IO.String.Writer(); 
    System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw); Datagrid.RenerControl(hw); 
    Response.Writer(tw.ToString()); 
    Response.End(); 
      

  4.   

    /// <summary>
    /// 将DataTable中的数据导出到指定的Excel文件中
    /// </summary>
    /// <param name="tab">包含被导出数据的DataTable对象</param>
    /// <param name="FileName">Excel文件的名称</param>
    /// <param name="mTitle">标题</param>
    /// <param name="mColumns">需要导出的列和对应的说明文字</param>
    private void Export(System.Data.DataTable tab,string mFileName,string mTitle,string[][] mColumns)
    {
    System.Web.HttpResponse httpResponse = Page.Response; System.Web.UI.WebControls.DataGrid dataGrid=new System.Web.UI.WebControls.DataGrid(); #region 绑定一个DataGrid
    dataGrid.DataSource=tab.DefaultView;
    dataGrid.AllowPaging = false;
    //dataGrid.HeaderStyle.BackColor = System.Drawing.Color.Green;
    dataGrid.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
    dataGrid.HeaderStyle.Font.Bold = true;
    dataGrid.HeaderStyle.BackColor = Color.LightCyan;
    dataGrid.ItemStyle.HorizontalAlign = HorizontalAlign.Left;
    dataGrid.AlternatingItemStyle.BackColor = Color.AliceBlue;
    dataGrid.AutoGenerateColumns = false;
    for(int i=0;i<mColumns.Length;i++)
    {
    string[] mCol = mColumns[i];
    BoundColumn boundCol = new BoundColumn();
    boundCol.DataField = mCol[0];
    boundCol.HeaderText = mCol[1];
    dataGrid.Columns.Add(boundCol);
    }
    dataGrid.DataBind();
    #endregion httpResponse.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(mFileName,System.Text.Encoding.UTF8)); //filename="*.xls";
    httpResponse.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
    httpResponse.ContentType ="application/ms-excel";
    System.IO.StringWriter  tw = new System.IO.StringWriter() ;
    System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);
    dataGrid.RenderControl(hw);

    string fileUrl = @"\XsExam\Tq_Manager\UpLoad\" +mFileName;
    string filePath = Page.Server.MapPath(fileUrl);
    System.IO.StreamWriter sw = System.IO.File.CreateText(filePath);
                
    //写文件
    //写入文件标题
    sw.WriteLine("<table><tr><td align='center' colspan='" + mColumns.Length.ToString() + "'><font face='宋体' size=12px><b>" 
    + mTitle + "</b></font></td></tr>");
                
    //写入制表时间
    sw.WriteLine("<tr><td colspan='" + mColumns.Length.ToString() + "' align='right'><font face='宋体' size=10px>制表时间:"
    + DateTime.Now.ToString("yyyy年MM月dd日") + "</font></td></tr></table>");
    sw.Write(tw.ToString());
    sw.Close(); httpResponse.Redirect(fileUrl);
                
    httpResponse.End();
    }
      

  5.   

    Reponse.ContentType="alllication/vnd.excel"; 
    Response.Charset = ""; 
    EnableViewState= false;
    System.IO.StringWriter tw= new System.IO.String.Writer(); 
    System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw); Datagrid.RenerControl(hw); 
    Response.Writer(tw.ToString()); 
    Response.End();