vb:
Private Sub ExportDataGrid(ByVal FileType As String, ByVal FileName As String)
        Response.Charset = "GB2312"
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312")

        Response.AppendHeader("Content-Disposition", "attachment;filename=" & HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8))
        Response.ContentType = FileType

        Me.EnableViewState = False
        Dim tw As System.IO.StringWriter
        tw = New System.IO.StringWriter()

        Dim hw As System.Web.UI.HtmlTextWriter
        hw = New HtmlTextWriter(tw)

        datagrid1.RenderControl(hw)
        Response.Write(tw.ToString())
        Response.End()

    End Sub

    Private Sub Boutxls_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Boutxls.Click
        Call ExportDataGrid("application/ms-excel", "指数列表.xls")
    End Sub

c#:

private void ExportDataGrid(string FileType, string FileName)
{
 Response.Charset = "GB2312";
 Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
 Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8));
 Response.ContentType = FileType;
 this.EnableViewState = false;
 System.IO.StringWriter tw;
 tw = new System.IO.StringWriter();
 System.Web.UI.HtmlTextWriter hw;
 hw = new HtmlTextWriter(tw);
 datagrid1.RenderControl(hw);
 Response.Write(tw.ToString());
 Response.End();
}

private void Boutxls_Click(object sender, System.EventArgs e)
{
 ExportDataGrid("application/ms-excel", "指数列表.xls");
}