2016-05-09 102 views
0

在我的頁面我有兩個文本框控件,我在日曆擴展程序中選擇日期擴展程序&的日期到excel按鈕我將導出Gridview數據到Excel表格。 當我選擇excel工作表時,顯示的文本框&也是我從中導出excel工作表的按鈕。在Asp.net中只導出Gridview數據到Excel格式C#

我已經在導出按鈕中寫入了導出代碼。 ,如: -

protected void Export_to_Excel_Click(object sender, EventArgs e) 
    { 
     try 
     { 

      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); 
      Grd_MidData.AllowPaging = false; 
      bindgriddata(); 
      //Change the Header Row back to white color 
      Grd_MidData.HeaderRow.Style.Add("background-color", "#FFFFFF"); 
      //Applying stlye to gridview header cells 
      for (int i = 0; i < Grd_MidData.HeaderRow.Cells.Count; i++) 
      { 
       Grd_MidData.HeaderRow.Cells[i].Style.Add("background-color", "#df5015"); 
      } 
      Grd_MidData.RenderControl(htw); 
      Response.Write(sw.ToString()); 
      Response.Flush(); 
     } 
     catch (Exception ee) 
     { 

     } 
    } 

當我選通excel表則顯示gridview的數據與兩個文本框&從那裏我做了過濾按鈕一起。

所以任何人都建議我,如何只顯示gridview數據,但不顯示excel工作表上的文本框&按鈕。

回答

1

您必須將數據綁定到您的Excel代碼, 使用下面的代碼

bindgriddata();  
    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 ht = new HtmlTextWriter(sw); 
    Grd_MidData.RenderControl(ht); 
    Response.Write(sw.ToString()); 
    Response.End(); 

這是爲我工作。

+0

謝謝#Rajesh。我使用這個代碼。只有一個改變我做了,而不是Response.End();我已經使用Response.Flush();.但問題仍然存在。當我下載Excel表格時,它會顯示Gridview數據以及文本框和按鈕。就像我們打印屏幕一樣,它會顯示整頁數據......所以我怎樣才能從表格中刪除2個文本框和按鈕。 – Sabyasachi

0

enter image description here

這裏GridView的數據顯示隨着自批准日期:日期:文本框&按鈕也。那麼我怎樣才能從表格中刪除這些字段。

+0

你好,這是因爲你在代碼中使用的RenderControl,通過這個屬性數據渲染,因爲它是在Excel工作表。 –

0

您可以使用close xml來生成excel,它將提供更多的函數來創建excel和格式。

protected void Export_to_Excel_Click(object sender, EventArgs e) 
{ 
    bindgriddata(); 
    Grd_MidData.DataSource = objDS; // Dataset 
    Grd_MidData.DataBind(); 

    using (XLWorkbook wb = new XLWorkbook()) 
    { 
     try 
     { 
      //creating worksheet 
      var ws = wb.Worksheets.Add("Report"); 

      //adding columms header 
      int columnscount = objDS.Tables[0].Columns.Count; 
      char a = 'A'; 
      for (int j = 1; j <= columnscount; j++) 
      { 
       string str = a + "1"; 
       ws.Cell(str).Value = objDS.Tables[0].Columns[j - 1].ColumnName.ToString(); 
       ws.Cell(str).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; 
       a++; 
      } 
      ws.Columns().AdjustToContents(); 

      //formatting columns header 
      var rngheaders = ws.Range("A1:J1"); 
      rngheaders.FirstRow().Style 
       .Font.SetBold() 
       .Font.SetFontSize(12) 
       .Font.SetFontColor(XLColor.Black) 
       .Fill.SetBackgroundColor(XLColor.DeepSkyBlue) 
       .Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center) 
       .Border.OutsideBorder = XLBorderStyleValues.Thin; 


      ////adding data to excel 
      int k = 2; 
      foreach (DataRow row in objDS.Tables[0].Rows) 
      { 
       char b = 'A'; 
       string str = b + "" + k; 
       for (int i = 0; i < objDS.Tables[0].Columns.Count; i++) 
       { 
        ws.Cell(str).Value = row[i].ToString(); 
        ws.Cell(str).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; 
        ws.Cell(str).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Left); 
        b++; 
        str = b + "" + k; 
       } 
       k++; 
      } 

      Response.Clear(); 
      Response.Buffer = true; 
      Response.Charset = ""; 
      Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; 
      Response.AddHeader("content-disposition", "attachment;filename=Customer.xlsx"); 
     } 
     catch { } 

     using (MemoryStream MyMemoryStream = new MemoryStream()) 
     { 
      wb.SaveAs(MyMemoryStream); 
      MyMemoryStream.WriteTo(Response.OutputStream); 
      Response.Flush(); 
      Response.End(); 
     } 
    } 

} 
相關問題