在線客服
24小時免費咨詢電話:18978941786
客服時間:上午9:30~下午6點
ASP.net中導出excel方法有以下幾種:
收藏 分享 發布日期:2012-2-12 16:30:41 編輯:admin 文章來源: 點擊率:
public void CreateExcel(DataSet ds,string typeid,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; //定義表對象與行對像,同時用DataSet對其值進行初始化
DataTable dt=ds.Tables[0];
DataRow[] myRow=dt.Select("");
// typeid=="1"時導出為EXCEL格式文件;typeid=="2"時導出為XML格式文件
if(typeid=="1")
{
//取得數據表各列標題,各標題之間以\t分割,最后一個列標題后加回車符
for(i=0;i<dt.Columns.Count-1;i++)
colHeaders+=dt.Columns[i].Caption.ToString()+"\t";
colHeaders +=dt.Columns[i].Caption.ToString() +"\n";
//向HTTP輸出流中寫入取得的數據信息
resp.Write(colHeaders);
//逐行處理數據
foreach(DataRow row in myRow)
{
//在當前行中,逐列獲得數據,數據之間以\t分割,結束時加回車符\n
for(i=0;i<row.ItemArray.Length-1;i++)
ls_item +=row[i].ToString() + "\t";
ls_item += row[i].ToString() +"\n";
//當前行數據寫入HTTP輸出流,并且置空ls_item以便下行數據
resp.Write(ls_item);
ls_item="";
}
}
else
{
if(typeid=="2")
{
//從DataSet中直接導出XML數據并且寫到HTTP輸出流中
resp.Write(ds.GetXml());
}
}
//寫緩沖區中的數據到HTTP頭文件中
resp.End();
} 1.樓主在Response.ContentType后面加上編碼設置就可以防止亂碼了,如下:
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//設置輸出流為簡體中文
2.有關000123變成123,是因為datagridview把這一列默認為數值類型的列了,要在導出之前綁定的時候設置一下datagridview改列數據類型,e.Row.Cells[i].Attributes.Add("class", "text"); 記住i是列的索引值。另外把style改成string style =@"<style> .text { mso-number-format:\@; } </script> "; 本文章由南寧網站建設、南寧網站優化、南寧網絡公司整理,轉載請注明出處:http://m.lidajijin.com/