12 Stimmen

Gridview-Daten in CSV-Datei exportieren

Ich habe ein Gridview-Steuerelement in ASP.Net 2.0 und ich brauche, um diese Gridview-Daten in CSV-Datei zu exportieren.

Nach der Bindung des Datasets an das Gridview habe ich einige Änderungen in den Gridview-Daten vorgenommen, z. B. wenn ich 0 im Dataset habe, dann zeige ich 0 als "Started" im Gridview und wenn ich 1 im Dataset habe, dann zeige ich 1 als "Not Started" im Gridview.

Ich kann den Datensatz also nicht direkt zum Exportieren verwenden. Was ich brauche ist Ich möchte den Code (in c#), die meine Gridview Daten (nicht Datasets Daten) in CSV-Datei exportieren.

31voto

Devjosh Punkte 6410

Versuchen Sie den folgenden Code, ich habe ihn schon oft benutzt. Er exportiert die Daten direkt aus dem Gridview in die im Code angegebene csv-Datei.

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();
}

für weitere Informationen besuchen Sie こちら Ich hoffe, es wird Ihnen helfen

5voto

zach.xtr Punkte 51

Zuerst danke an Devjosh für die gute Antwort, die ich modifiziert habe, um mit Gridviews zu arbeiten, die AutoGenerateColumns=true und AllowSorting=true haben. Außerdem habe ich alle zurückgegebenen Kommas aus den Daten entfernt, um sicherzustellen, dass die csv-Datei nicht beschädigt wurde.

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();
}

-1voto

Arun Kumar Punkte 139
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();

        }

Rufen Sie diese Methode einfach im Click-Ereignis einer Schaltfläche auf. F Exportieren von Gridview-Daten in eine CSV-Datei

Ich hoffe, dies hilft Ihnen. Danke!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X