将所选的gridview列发送到excel文件

我已经尝试将整个gridview数据保存到excel文件的代码,它工作正常,但现在我只想保存gridview的特定列到excel文件。我已经使用mysql数据库和asp.net与C#。请任何人都帮我有了这个。

**default.aspx** <asp:GridView ID="GridView1" runat="server"> </asp:GridView> <asp:Button ID="btnSave" runat="server" Text="Save to Excel" OnClick="btnSave_Click" /> **default.cs** protected void btnSave_Click(object sender, EventArgs e) { ExportGridToExcel(GridView1, "StudentMarks.xls"); } public void ExportGridToExcel(GridView grdGridView, string fileName) { Response.Clear(); Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.xls", fileName)); Response.Charset = ""; Response.ContentType = "application/vnd.xls"; StringWriter stringWrite = new StringWriter(); HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); grdGridView.RenderControl(htmlWrite); Response.Write(stringWrite.ToString()); Response.End(); } public override void VerifyRenderingInServerForm(Control control) { return; } 

这是我的gridview

这是生成的excel文件

生成excel使用这个方法..

 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); GridView.AllowPaging = false; // Re-Bind data to GridView using (MSEntities1 CompObj = new MSEntities1()) { // code for bind grid view GridView.DataBind(); } // Change the Header Row back to white color GridViewC.Style.Add(" font-size", "10px"); GridView.HeaderRow.Style.Add("background-color", "#FFFFFF"); //Apply style to Individual Cells GridView.HeaderRow.Cells[0].Style.Add("background-color", "green"); GridView.HeaderRow.Cells[1].Style.Add("background-color", "green"); GridView.HeaderRow.Cells[2].Style.Add("background-color", "green"); GridView.HeaderRow.Cells[3].Style.Add("background-color", "green"); GridView.HeaderRow.Cells[4].Style.Add("background-color", "green"); GridView.HeaderRow.Cells[5].Style.Add("background-color", "green"); GridView.HeaderRow.Cells[6].Style.Add("background-color", "green"); GridView.HeaderRow.Cells[7].Style.Add("background-color", "green"); int k = GridView.Rows.Count; for (int i = 1; i < GridView.Rows.Count; i++) { GridViewRow row = GridView.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"); row.Cells[5].Style.Add("background-color", "#C2D69B"); row.Cells[6].Style.Add("background-color", "#C2D69B"); row.Cells[7].Style.Add("background-color", "#C2D69B"); } } GridView.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(); } 

你可以使用asp:boundfield来select你想在gridview中显示的列。 然后将该gridview导出为ex​​cel。

好的。在你的情况下,你可以绑定一个新的gridview,但没有编辑/删除列。 您可以将这个新的gridview的可见性设置为false。