记录一下

public void CreateExcel(DataTable CustomerTB, string FileName)
    {
        Response.Charset = "UTF-8";
        Response.ContentEncoding = System.Text.Encoding.Default;
        Response.ContentType = "application/ms-excel";
        Response.AddHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls");
        this.EnableViewState = false;
        string colHeaders = "", Is_item = "";
        int i = 0;

        //定义表对象与行对象,同时使用DataSet对其值进行初始化

        DataRow[] myRow = CustomerTB.Select("");
        for (i = 0; i < CustomerTB.Columns.Count; i++)     //取得数据表各列标题,标题之间以\t分割,最后一个列标题后加回车符
        {
            colHeaders += CustomerTB.Columns[i].Caption.ToString() + "\t";
        }
        colHeaders += "\n";
        Response.Write(colHeaders);        //逐行处理数据
        foreach (DataRow row in myRow)
        {
            //在当前行中,逐列取得数据,数据之间以\t分割,结束时加回车符\n
            for (i = 0; i < CustomerTB.Columns.Count; i++)
            {
                if (row[i].ToString() == "")
                    Is_item += "\t";
                else
                {
                    row[i] = (row[i].ToString()).Replace("\n", "");
                    Is_item += row[i].ToString() + "\t";
                }
            }
            Is_item += "\n";
            Response.Write(Is_item);
            Is_item = "";
        }

        Response.End();       //写缓冲区中的数据到HTTP头文件中
    }

注:关于表头:在oracle中,sql语句可以使用  字段  as 名称(中文) ,这样在导出的时候就自动是中文了。