记录一下
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 名称(中文) ,这样在导出的时候就自动是中文了。