public void CreateExcel(System.Data.DataTable dt, string typeid, string FileName)
{
HttpResponse resp;
resp = Page.Response;
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
resp.ContentType = "application/ms-excel";
resp.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 = dt.Select("");
//typeid=="1"時導出爲Excel格式文件;typeid=="2"時導出爲XML文件
if (typeid == "1")
{
//取得數據表各列標題,標題之間以/t分割,最後一個列標題後加回車符
for (i = 0; i < dt.Columns.Count; i++)
{
colHeaders += dt.Columns[i].Caption.ToString() + "/t";
}
colHeaders += "/n";
resp.Write(colHeaders);
//逐行處理數據
foreach (DataRow row in myRow)
{
//在當前行中,逐列取得數據,數據之間以/t分割,結束時加回車符/n
for (i = 0; i < dt.Columns.Count; i++)
{
Is_item += row[i].ToString() + "/t";
}
Is_item += "/n";
resp.Write(Is_item);
Is_item = "";
}
}
else
{
if (typeid == "2")
{
//從DataSet中直接導出XML數據並且寫到HTTP輸出流中
resp.Write(dt.DataSet.GetXml());
}
}
//寫緩衝區中的數據到HTTP頭文件中
resp.End();
}