private DataSet BindData()
{
SqlConnection myConnection = new SqlConnection( "server=(local);uid=sa;pwd=111;database=Pubs" ); 
DataSet myDataSet = new DataSet(); 
SqlDataAdapter myDataAdapter = new SqlDataAdapter("Select * From Authors", myConnection );
myDataAdapter.Fill( myDataSet, "Authors" );
dgShow.DataSource = myDataSet.Tables[0].DefaultView;
dgShow.DataBind();
return myDataSet;

}
private void btnMIME_Click(object sender, System.EventArgs e)
{
BindData(); Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "inline;filename="
+   HttpUtility.UrlEncode("下载文件.xls",Encoding.UTF8   )   );   
//如果输出为Word,修改为以下代码
//Response.ContentType = "application/ms-word" 
//Response.AddHeader("Content-Disposition", "inline;filename=test.doc") 
StringBuilder sb=new StringBuilder(); 
System.IO.StringWriter sw = new System.IO.StringWriter(sb);
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(sw);
sb.Append("<html><body>");
dgShow.RenderControl(hw);
sb.Append("</body></html>"); 
Response.Write(sb.ToString());
Response.End();
}

解决方案 »

  1.   

    private void WriteToExcelFromDataGrid(string fileName)
      {
       //导入EXECL
       if(this.DataGrid1.Items.Count==0)
       {
        Response.Write("<script>alert('对不起,你没有查询到任何记录,不能导出数据')</script>");
       }
       else
       {     
        string strFileName="Reports"+fileName+".xls";
        Response.Buffer= false;
        Response.Charset="UTF-8";
        Response.AppendHeader("Content-Disposition","attachment;filename="+strFileName+"");
        Response.ContentEncoding=System.Text.Encoding.GetEncoding("UTF-8");
        //设置输出流为简体中文
        Response.ContentType = "application/vnd.ms-excel";
        //设置输出文件类型为excel文件。
        this.EnableViewState = false;
        System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
        System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
        System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
        this.DataGrid1.RenderControl(oHtmlTextWriter);
        Response.Write(oStringWriter.ToString());
       
       }
      }