2013-04-08 2 views
0

ASP.NET의 Excel 시트로 데이터 전송 그리드보기. 난 당신의 코드에 어떤 문제가 있는지 확실하지 않다ASP.NET에서 gridview에서 Excel 로의 데이터 내보내기

Response.ClearContent(); 
    Response.Buffer = true; 
    Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", 
    "Customers.xls")); 
    Response.ContentType = "application/ms-excel"; 
    StringWriter sw = new StringWriter(); 
    HtmlTextWriter htw = new HtmlTextWriter(sw); 
    gvdetails.AllowPaging = false; gvdetails.DataBind(); 
    gvdetails.HeaderRow.Style.Add("background-color", "#FFFFFF"); 
    gvdetails.RenderControl(htw); 
    Response.Write(sw.ToString()); 
    Response.End(); 
+0

지금의로 발생하는 정확한 문제는 무엇인가? – pordi

+0

이 코드를 수행하는 중 빈을 표시하십시오. excel 시트 데이터를 Excel 시트에로드하지 않았습니다. Excel 시트에서 거드 뷰 데이터를로드하는 방법을 참조하십시오. –

답변

2

그러나 당신은 아래의 코드를 사용할 수 있습니다 :

을 이러한 유형의 문제를 해결하는 방법 오류이 내 코드입니다

Control 'ContentPlaceHolder1_gvdetails' of type 'GridView' must be placed inside a form tag with runat=server. 

입니다

using System; 
using System.Data; 
using System.IO; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace Whatever 
{ 
/// 

/// This class provides a method to write a dataset to the HttpResponse as 
/// an excel file. 
/// 

public class ExcelExport 
{ 
    public static void ExportDataSetToExcel(DataSet ds, string filename) 
    { 
    HttpResponse response = HttpContext.Current.Response; 

    // first let's clean up the response.object 
    response.Clear(); 
    response.Charset = ""; 

    // set the response mime type for excel 
    response.ContentType = "application/vnd.ms-excel"; 
    response.AddHeader("Content-Disposition", "attachment;filename=\"" + filename + "\""); 

    // create a string writer 
    using (StringWriter sw = new StringWriter()) 
    { 
    using (HtmlTextWriter htw = new HtmlTextWriter(sw)) 
    { 
    // instantiate a datagrid 
    DataGrid dg = new DataGrid(); 
    dg.DataSource = ds.Tables[0]; 
    dg.DataBind(); 
    dg.RenderControl(htw); 
    response.Write(sw.ToString()); 
    response.End(); 
    } 
    } 
    } 
} 
} 

당신은 또한 당신이 단지 t을 배치 http://tim.mackey.ie/HowtoExportADatasetToExcelCAspnet.aspx

+0

u는 전체 코드를 제공 할 수 있습니다. –

+0

예. 게시물을 편집하겠습니다 .. – pordi

0

이 링크에 갈 수 그는 페이지로드 이벤트 메서드 위에 코드를 작성합니다. 틀림없이 작동 할 것이다.

public override void VerifyRenderingInServerForm(Control control) 
    { 
     /* Verifies that the control is rendered */ 
    } 
0
Please try with the below code for the blank excel sheet export issues. 

#region " Excel Export" 
    private void fnExcelUpload() 
    { 
     try 
     { 
      dgDashboard.AllowPaging = false; 
      dgDashboard.Columns[0].Visible = false; 
      Response.ContentType = "application/vnd.ms-excel"; 
      Response.AddHeader("content-disposition", "attachment; filename = ExcelExport.xls"); 
      Response.Charset = ""; 
      Response.Buffer = true; 
      this.EnableViewState = false; 
      StringWriter tw = new StringWriter(); 
      HtmlTextWriter hw = new HtmlTextWriter(tw); 
      fillDashboard(); 
      dgDashboard.RenderControl(hw); 
      HttpContext.Current.Response.Write(tw.ToString()); 
      HttpContext.Current.ApplicationInstance.CompleteRequest(); 
      HttpContext.Current.Response.Flush(); 
      //HttpContext.Current.Response.End(); 
     } 
     catch (Exception Ex) 
     { 
      ErrorLog obj = new ErrorLog(Session["PROGRAMCODE"].ToString(), Ex.Message, Ex.StackTrace, this.Page.ToString(), new System.Diagnostics.StackTrace().GetFrame(0).GetMethod().Name, System.Net.Dns.GetHostEntry(Context.Request.ServerVariables["REMOTE_HOST"]).HostName.ToString(), Session["EMPNUMBER"].ToString(), HttpContext.Current.User.Identity.Name.ToString()); 
     } 
     HttpContext.Current.Response.End(); 
    } 

    protected void imgExcelExport_Click(object sender, ImageClickEventArgs e) 
    { 
     fnExcelUpload(); 
    } 
    #endregion 
관련 문제