//我的可运行源码,一个字符都没有改。 
protected void btnOutput_Click(object sender, EventArgs e)
//这是页面上的导出按钮单击入口。
    {
string strFileName = HttpContext.Current.Server.MapPath("../Excels/") + "ExcelOutput";
//本行指定一个服务器上的绝对路径和文件名;
try
{

      HttpResponse resp;
      resp = HttpContext.Current.Response;
      resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
      resp.AppendHeader("Content-disposition", "attachment;filename=" + strFileName + ".xls");
      resp.ContentType = "application/ms-excel";

            //变量定义 
            string colHeaders = null;
            //取得数据表各列标题,各标题之间以\t分割,插入后成为标题行。            colHeaders = "用户账户" + "\t" + "姓名" + "\t" + "Email" ;
            sfw.WriteLine(colHeaders);
            //逐行处理数据 
            ENTUserAccountEOList eNTUserAccountEOList = new ENTUserAccountEOList();
//这是一个类似于Data Table行集合的对象集合。
            eNTUserAccountEOList.Load();
//我的行集合要加载对象集合,你的数据表应该有若干行数据。
            foreach (ENTUserAccountEO eNTUserAccountEO in eNTUserAccountEOList)
//我遍历的是我的对象集合,你遍历的应该数据表的行集合。
            {
                sfw.WriteLine(eNTUserAccountEO.UserWebName + "\t" + eNTUserAccountEO.UserChineseName + "\t" + eNTUserAccountEO.Email + "\t");
//我用硬代码把集合内各分量连成一个串,你的化码可以要用循环代码遍历数据表//的每个行(类似于下边的循环模型)。
            }
            //foreach (DataRow row in myRow)
            //{
            //}
            resp.Write(sfw);
            //resp.Clear(); 
            resp.End();
        }
        catch (Exception exception_Output)
        {
//捕捉可能的读写错误,使代码更健壮。
            throw exception_Output;
        } 
}
完了,就么一点儿,有困难的朋友可以与我联系,能帮尽量帮你。