将gridview数据导出为CSV文件

我在ASP.Net 2.0中有一个gridview控件,我需要将这个gridview数据导出到CSV文件中。

我已将此gridview与数据集绑定。在将数据集绑定到gridview后,我在gridview数据中做了一些更改,如果我在数据集中得到0,那么我在gridview中显示0为“Started”,如果我在然后我在gridview中将1显示为“未启动”。

所以,我不能直接使用数据集进行导出。 我需要的是.. 我想要将我的gridview数据(不是数据集的数据)导出到CSV文件中的代码(在c#中)。

尝试以下代码,我已经多次使用它。 它会将数据直接从gridview导出到代码中指定的csv文件。

protected void btnExportCSV_Click(object sender, EventArgs e) { Response.Clear(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.csv"); Response.Charset = ""; Response.ContentType = "application/text"; GridView1.AllowPaging = false; GridView1.DataBind(); StringBuilder sb = new StringBuilder(); for (int k = 0; k < GridView1.Columns.Count; k++) { //add separator sb.Append(GridView1.Columns[k].HeaderText + ','); } //append new line sb.Append("\r\n"); for (int i = 0; i < GridView1.Rows.Count; i++) { for (int k = 0; k < GridView1.Columns.Count; k++) { //add separator sb.Append(GridView1.Rows[i].Cells[k].Text + ','); } //append new line sb.Append("\r\n"); } Response.Output.Write(sb.ToString()); Response.Flush(); Response.End(); } 

欲了解更多信息,请访问这里希望它会帮助你

首先感谢Devjosh的好答案,我修改了它以使用具有AutoGenerateColumns = true和AllowSorting = true的网格视图。 另外,我从数据中删除了任何返回的逗号,以确保csv文件没有损坏。

 private void ExportReport() { // set the resulting file attachment name to the name of the report... string fileName = "test"; Response.Clear(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment;filename=" + fileName + ".csv"); Response.Charset = ""; Response.ContentType = "application/text"; System.Text.StringBuilder sb = new System.Text.StringBuilder(); // Get the header row text form the sortable columns LinkButton headerLink = new LinkButton(); string headerText = string.Empty; for (int k = 0; k < gvReport.HeaderRow.Cells.Count; k++) { //add separator headerLink = gvReport.HeaderRow.Cells[k].Controls[0] as LinkButton; headerText = headerLink.Text; sb.Append(headerText + ","); } //append new line sb.Append("\r\n"); for (int i = 0; i < gvReport.Rows.Count; i++) { for (int k = 0; k < gvReport.HeaderRow.Cells.Count; k++) { //add separator and strip "," values from returned content... sb.Append(gvReport.Rows[i].Cells[k].Text.Replace(",", "") + ","); } //append new line sb.Append("\r\n"); } Response.Output.Write(sb.ToString()); Response.Flush(); Response.End(); } 
 private void ExportGridToCSV() { Response.Clear(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment;filename=Employee.csv"); Response.Charset = ""; Response.ContentType = "application/text"; GridEmployee.AllowPaging = false; GridEmployee.DataBind(); StringBuilder columnbind = new StringBuilder(); for (int k = 0; k < GridEmployee.Columns.Count; k++) { columnbind.Append(GridEmployee.Columns[k].HeaderText + ','); } columnbind.Append("\r\n"); for (int i = 0; i < GridEmployee.Rows.Count; i++) { for (int k = 0; k < GridEmployee.Columns.Count; k++) { columnbind.Append(GridEmployee.Rows[i].Cells[k].Text + ','); } columnbind.Append("\r\n"); } Response.Output.Write(columnbind.ToString()); Response.Flush(); Response.End(); } 

只需在按钮Click事件中调用此方法即可。 有关更多代码,请单击链接将gridview数据导出到CSV文件

我希望这可以帮助你。 谢谢。