I have a gridview control in ASP.Net 2.0 and i need to export this gridview data into CSV file.
I have bind this gridview with the dataset.After binding the dataset to the gridview i have done some changes in the gridview data like if I got 0 in dataset then i show 0 as “Started” in the gridview and if i got 1 in the dataset then I show 1 as “Not Started” in the gridview.
So, i can’t use dataset directly for exporting. What i need is..i want the code (in c#) that export my gridview data(not dataset’s data) into CSV file.
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
Try following code, i used it already many times. It will export the data directly from gridview to csv file specified in the code.
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("rn");
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("rn");
}
Response.Output.Write(sb.ToString());
Response.Flush();
Response.End();
}
for more information visit Here
Hope it will help you
Method 2
First thanks to Devjosh for the good answer which I modified to work with gridviews that have AutoGenerateColumns=true and AllowSorting=true. Plus I stripped out any returned commas from the data to make sure csv file was not corrupted.
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("rn");
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("rn");
}
Response.Output.Write(sb.ToString());
Response.Flush();
Response.End();
}
Method 3
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("rn");
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("rn");
}
Response.Output.Write(columnbind.ToString());
Response.Flush();
Response.End();
}
Just call this method in a button Click event.
For more Code, click the link
Export gridview data into CSV file
I hope this helps you. Thanks.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0