Exporter les données gridview dans un fichier CSV

J’ai un contrôle gridview dans ASP.Net 2.0 et j’ai besoin d’exporter ces données gridview dans un fichier CSV.

J’ai lié cette grid à l’dataset. Après avoir lié l’dataset à la grid, j’ai effectué quelques modifications dans les données de grid comme si j’avais 0 dans l’dataset, puis je montre 0 comme “démarré” dans la grid et si j’en ai obtenu 1 dans le dataset alors je montre 1 comme “non commencé” dans le gridview.

Donc, je ne peux pas utiliser directement l’dataset pour l’exportation. Ce dont j’ai besoin, c’est .. je veux le code (en c #) qui exporte mes données gridview (pas celles de l’dataset) dans un fichier CSV.

Essayez de suivre le code, je l’ai déjà utilisé plusieurs fois. Il exportera les données directement de gridview vers le fichier csv spécifié dans le 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(); SsortingngBuilder sb = new SsortingngBuilder(); 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(); } 

pour plus d'informations, visitez Here Hope, cela vous aidera

Tout d’abord, merci à Devjosh pour la bonne réponse que j’ai modifiée pour fonctionner avec les vues de grid avec AutoGenerateColumns = true et AllowSorting = true. De plus, j’ai supprimé toutes les virgules renvoyées des données pour m’assurer que le fichier csv n’était pas corrompu.

 private void ExportReport() { // set the resulting file attachment name to the name of the report... ssortingng fileName = "test"; Response.Clear(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment;filename=" + fileName + ".csv"); Response.Charset = ""; Response.ContentType = "application/text"; System.Text.SsortingngBuilder sb = new System.Text.SsortingngBuilder(); // Get the header row text form the sortable columns LinkButton headerLink = new LinkButton(); ssortingng headerText = ssortingng.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(); SsortingngBuilder columnbind = new SsortingngBuilder(); 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(); } 

Il suffit d'appeler cette méthode dans un événement clic sur un bouton. Pour plus de code, cliquez sur le lien Exporter les données de gridview dans un fichier CSV

J'espère que ceci vous aide. Merci.