2013-04-12 32 views
0

我正在將數據網格視圖導出到Excel工作表,並且工作正常。數據導出網格視圖爲excel

在網格視圖中有10列,但我想在Excel表格中只顯示5列。

我該如何解決這個問題?

protected void btnexcel_Click1(object sender, EventArgs e) 
    { 

    Response.Clear(); 
    Response.Buffer = true; 

    Response.AddHeader("content-disposition", 
    "attachment;filename=ActualsAndBudgets.xls"); 
    Response.Charset = ""; 
    Response.ContentType = "application/ms-excel"; 
    Response.Cache.SetCacheability(HttpCacheability.NoCache); 
    StringWriter sw = new StringWriter(); 
    HtmlTextWriter htw = new HtmlTextWriter(sw); 
    gvdetails.AllowPaging = false; 
    fillgrid(); 
    gvdetails.RenderControl(htw); 
    Response.Write(sw.ToString()); 
    Response.End(); 
    gvdetails.AllowPaging = true; 
    fillgrid(); 

    } 
    public override void VerifyRenderingInServerForm(Control control) 
    { 

    } 

回答

0

你可以試試下面的代碼:

protected void ConvertToExcel_Click(object sender, System.EventArgs e) 
{ 
Response.ContentType = "application/vnd.ms-excel"; 
Response.AddHeader("content-disposition",  "attachment;filename=ContactMailingAddress.xls"); 
Response.Charset = ""; 
StringWriter sw = new StringWriter(); 
HtmlTextWriter hw = new HtmlTextWriter(sw); 
ContactMailingView.AllowPaging = false; 
ContactMailingView.DataBind(); 


    //Apply style to Individual Cells 

    ContactMailingView.HeaderRow.Cells(0).Style.Add("background-color", "yellow"); 
ContactMailingView.HeaderRow.Cells(1).Style.Add("background-color", "yellow"); 
ContactMailingView.HeaderRow.Cells(2).Style.Add("background-color", "yellow"); 
ContactMailingView.HeaderRow.Cells(3).Style.Add("background-color", "yellow"); 
ContactMailingView.HeaderRow.Cells(4).Style.Add("background-color", "yellow"); 


for (int i = 0; i <= ContactMailingView.Rows.Count - 1; i++) { 
    GridViewRow row = ContactMailingView.Rows(i); 

      //Change Color back to white 
    row.BackColor = System.Drawing.Color.White; 

      //Apply text style to each Row 
    row.Attributes.Add("class", "textmode"); 

      //Apply style to Individual Cells of Alternating Row 
    if (i % 2 != 0) { 
     row.Cells(0).Style.Add("background-color", "#C2D69B"); 
     row.Cells(1).Style.Add("background-color", "#C2D69B"); 
     row.Cells(2).Style.Add("background-color", "#C2D69B"); 
     row.Cells(3).Style.Add("background-color", "#C2D69B"); 
     row.Cells(4).Style.Add("background-color", "#C2D69B"); 

    } 
} 

    ContactMailingView.RenderControl(hw); 

    //style to format numbers to string 
string style = "<style>.textmode{mso-number-format:\\@;}</style>"; 
Response.Write(style); 
Response.Output.Write(sw.ToString()); 
Response.Flush(); 
Response.End(); 

}

我把它從我的崗位在dotNetFromManila blog

希望它可以幫助你。

0

使用此代碼可能會有所幫助。並且必須在您的項目中添加iTextSharp dll。

protected void btnExportExcel_Click(object sender, EventArgs e) 
    { 
     Response.Clear(); 
     Response.Buffer = true; 
     Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls"); 
     Response.Charset = ""; 
     Response.ContentType = "application/vnd.ms-excel"; 

     StringWriter sw = new StringWriter(); 
     HtmlTextWriter hw = new HtmlTextWriter(sw); 
     GridView1.AllowPaging = false; 

     // Re-Bind data to GridView 

     using (CompMSEntities1 CompObj = new CompMSEntities1()) 
     { 
      Start = Convert.ToDateTime(txtStart.Text); 
      End = Convert.ToDateTime(txtEnd.Text); 

      GridViewSummaryReportCategory.DataSource = CompObj.SP_Category_Summary(Start, End); 
      SP_Category_Summary_Result obj1 = new SP_Category_Summary_Result(); 
      GridView1.DataBind(); 
      GridView1.Visible = true; 
      ExportTable.Visible = true; 
     } 

     //Change the Header Row back to white color 

     GridView1.HeaderRow.Style.Add("background-color", "#FFFFFF"); 


     GridView1.Style.Add(" font-size", "10px"); 




     //Apply style to Individual Cells 

     GridView1.HeaderRow.Cells[0].Style.Add("background-color", "green"); 
     GGridView1.HeaderRow.Cells[1].Style.Add("background-color", "green"); 
     GridView1.HeaderRow.Cells[2].Style.Add("background-color", "green"); 
     GridView1.HeaderRow.Cells[3].Style.Add("background-color", "green"); 
     GridView1.HeaderRow.Cells[4].Style.Add("background-color", "green"); 

     for (int i = 1; i < GridView1.Rows.Count; i++) 
     { 
      GridViewRow row = GridView1.Rows[i]; 

      //Change Color back to white 

      row.BackColor = System.Drawing.Color.White; 

      //Apply text style to each Row 

     // row.Attributes.Add("class", "textmode"); 

      //Apply style to Individual Cells of Alternating Row 

      if (i % 2 != 0) 
      { 
       row.Cells[0].Style.Add("background-color", "#C2D69B"); 
       row.Cells[1].Style.Add("background-color", "#C2D69B"); 
       row.Cells[2].Style.Add("background-color", "#C2D69B"); 
       row.Cells[3].Style.Add("background-color", "#C2D69B"); 
       row.Cells[4].Style.Add("background-color", "#C2D69B"); 
      } 
     } 
     GridView1.RenderControl(hw); 

     //style to format numbers to string 

     string style = @"<style> .textmode { mso-number-format:\@; } </style>"; 

     Response.Write(style); 
     Response.Output.Write(sw.ToString()); 
     Response.Flush(); 
     Response.End(); 
    } 
+0

並且可能是你的數據不能用gridview在導出excel函數中正確綁定,檢查一下你是否在gridview.at中正確獲取數據綁定的時候 –