datatable导出到Excel解决方法

datatable导出到Excel
请大神们看看这是什么问题,为什么会把整个页面都导出了,我只要datatable的数据

public static void ExportExcel(HttpResponse Response, DataTable dt, string HeadCaption, string HeadField, string HeadWidth, string FileType, string FileName, ref string ErrorStr)
        {
            Response.Buffer = true;
            Response.ClearContent();
            Response.ClearHeaders();
            Response.Charset = "GB2312";

            Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
            Response.ContentEncoding = System.Text.Encoding.Default;//设置输出流为简体中文   
            Response.ContentType = FileType;//"application/ms-excel";//设置输出文件类型为excel文件。 

            string colHeaders = "";
            string ls_item = "";

            string[] sArrayCaption = HeadCaption.Split(',');//表头
            for (int i = 0; i < sArrayCaption.Length; i++)
            {
                if (i == (sArrayCaption.Length - 1))//最后一列,加n
                {
                    colHeaders += sArrayCaption[i].ToString().Trim() + "\n";
                }
                else
                {
                    colHeaders += sArrayCaption[i].ToString().Trim() + "\t";
                }
            }
            Response.Write(colHeaders);

            //向HTTP输出流中写入取得的数据信息
            //逐行处理数据 
            ////定义表对象与行对象,同时用DataSet对其值进行初始化
            string[] sArrayField = HeadField.Split(',');//数据字段名
            DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的

            foreach (DataRow row in myRow)
            {
                //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据   
                for (int i = 0; i < sArrayField.Length; i++)
                {

                    if (i == (sArrayField.Length - 1))//最后一列,加n
                    {
                        ls_item += row[sArrayField[i].ToString().Trim()].ToString().Trim() + "\n";
                    }
                    else
                    {
                        ls_item += row[sArrayField[i].ToString().Trim()].ToString().Trim() + "\t";
                    }

                }
                Response.Write(ls_item);