2016-06-14 54 views
0

這裏是我的代碼片段,用於將DataTable對象呈現到Excel.But當我點擊ExporttoExcel按鈕時,我無法將數據導入到Excel中,所有的幫助將是非常有必要的。感謝提前。在asp.net中綁定DataTable時導出到excel不起作用

<asp:Button ID="btnExport" runat="server" Text="ExporttoExcel" OnClick="ExporttoExcel"/> 

protected void ExporttoExcel(object sender, EventArgs args) 
{ 
    DataTable dt=GetValues(); 
    Response.Clear(); 
    Response.ClearContent(); 
    Response.Buffer = true; 
    Response.AddHeader("content-disposition", "attachment;filename=Data.xls"); 
    Response.ContentType = "application/vnd.ms-excel"; 
    Response.Charset = "utf-8"; 
    string tab = ""; 
    foreach (DataColumn column in dt.Columns) 
    { 
     Response.Write("<b>"); 
     Response.Write(tab + column.ColumnName.ToString()); 
     Response.Write("</b>"); 
     tab = "\t"; 
    } 
    Response.Write("\n"); 
    int i; 
    foreach (DataRow row in dt.Rows) 
    { 
     tab = ""; 
     for (i = 0; i < dt.Columns.Count; i++) 
     { 
      Response.Write(tab + row[i].ToString()); 
      tab = "\t"; 
     } 
     Response.Write("\n"); 
    } 

    Response.Flush(); 
} 

public DataTable GetValues() 
{ 
    DataTable table = new DataTable(); 
    table.Columns.Add("Dosage", typeof(int)); 
    table.Columns.Add("Drug", typeof(string)); 
    table.Columns.Add("Patient", typeof(string)); 
    table.Columns.Add("Date", typeof(DateTime)); 

    // Here we add five DataRows. 
    table.Rows.Add(25, "Indocin", "David", DateTime.Now); 
    table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now); 
    table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now); 
    table.Rows.Add(21, "Combivent", "Janet", DateTime.Now); 
    table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now); 
    return table;  
} 
+0

顯示你的代碼,這種方法的GetValues() –

+0

把實際您的帖子中的方法中的代碼。 –

回答

0

我已經使用了下面的代碼,它爲我工作。您必須與我們分享您的GetValue函數定義,以便我們可以爲您提供幫助。

<asp:Button ID="btnExport" runat="server" Text="ExporttoExcel"/> 

protected void ExporttoExcel(object sender EventArgs args) 
{ 
    dtCity = city.GetAllCity();//your datatable 
    string attachment = "attachment; filename=city.xls"; 
    Response.ClearContent(); 
    Response.AddHeader("content-disposition", attachment); 
    Response.ContentType = "application/vnd.ms-excel"; 
    string tab = ""; 
    foreach (DataColumn dc in dt.Columns) 
    { 
     Response.Write(tab + dc.ColumnName); 
     tab = "\t"; 
    } 
    Response.Write("\n"); 
    int i; 
    foreach (DataRow dr in dt.Rows) 
    { 
     tab = ""; 
     for (i = 0; i < dt.Columns.Count; i++) 
     { 
      Response.Write(tab + dr[i].ToString()); 
      tab = "\t"; 
     } 
     Response.Write("\n"); 
    } 
    Response.End(); 
} 
1

我用來創建excel文件的方法是使用gridview控件。 在gridview控件的幫助下,您可以輕鬆創建excel文件。 在下面的代碼,我填gridviewdatatable數據,並使用RenderControl方法來生成HTML,然後將其保存到一個文件,一個.xls擴展

protected void ExporttoExcel(object sender, EventArgs args) 
{ 
    DataTable dt = GetValues();   
    var grid = new System.Web.UI.WebControls.GridView(); 
    grid.ShowHeaderWhenEmpty = true;   
    grid.DataSource = dt; 


    grid.DataBind(); 
    Response.ClearContent(); 
    Response.AddHeader("content-disposition", "attachment; filename=Data.xls"); 
    Response.ContentType = "application/excel"; 
    StringWriter sw = new StringWriter(); 
    System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw); 
    grid.RenderControl(htw); 
    Response.Write(sw.ToString()); 
    Response.End();    
}