public void CreateExcel(System.Web.UI.Page Page, OleDbDataReader dr, string FileName)
{
HttpResponse resp;
resp = Page.Response;
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
string colHeaders = "", ls_item = "";
int i = 0;
for (i = 0; i < dr.FieldCount - 1; i++)
{
colHeaders += dr.GetName(i).ToString() + "\t";
}
colHeaders += dr.GetName(i).ToString() + "\n";
//向HTTP輸出流中寫入取得的數據信息
resp.Write(colHeaders);
//逐行處理數據
while (dr.Read())
{
//在當前行中,逐列獲得數據,數據之間以\t分割,結束時加回車符\n
for (i = 0; i < dr.FieldCount - 1; i++)
{
ls_item += dr[i].ToString() + "\t";
}
ls_item += dr[i].ToString() + "\n";
//當前行數據寫入HTTP輸出流,並且置空ls_item以便下行數據
resp.Write(ls_item);
ls_item = "";
}
//寫緩沖區中的數據到HTTP頭文件中
resp.End();
}