Export-gridview-Daten zu xlsx-format?

Ich habe eine große gridview als Teil einer web-Anwendung, die eine Kombination von gebundenen Feldern und Vorlage Felder und hat DataFormatStrings definiert, die definieren, wie die Werte dargestellt werden, die auf die Zellen. Ich habe eine harte Zeit, die Umwandlung aller dieser zu einer datatable, so dass ich schreiben Sie zu einem excel-sheet.

Umwandlung des gridview-Steuerelements direkt in excel zwingt mich die Verwendung von String zu Schreiben und in Html Schreiben, die produzieren nur .xls-format. Wir sind auf der Suche, das die Vereinheitlichung aller excel-download-Optionen auf der .xlsx-format. Hier ist, was ich bisher ausprobiert

dt = gvInvoicesEX.DataSource as DataTable;

Die DataSource-Eigenschaft gibt null zurück, aus irgendeinem Grund. Ich habe auch versucht, die normale loop-in-loop Technik gehen über jeder Zelle in gridview und kopieren Sie es auf die datatable-aber ich bekomme nur eine datatable voll von leeren Zellen.

for (int i = 0; i < gvInvoicesEX.Rows.Count; i++)
{
     DataRow dr = dt.NewRow();
     for (int j = 1; j < gvInvoicesEX.Columns.Count; j++)
     {
          gvInvoicesEX.Rows[i].Cells[j].Attributes.Add("class", "text");
          dr[j - 1] = gvInvoicesEX.Rows[i].Cells[j].Text;   
     }
     dt.Rows.Add(dr);
}

Das folgende ist meine excel-Konvertierung-code:

using (var wb = new XLWorkbook())
{
    DataTable dt = GetDataTableFromGridView();
    string fileName = "BillingDetail" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx";
    wb.Worksheets.Add(dt);
    Response.Clear();
    Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
    Response.AddHeader("content-disposition", "attachment;filename=" + fileName);
    using (var ms = new System.IO.MemoryStream())
    {
        wb.SaveAs(ms);
        ms.WriteTo(Response.OutputStream);
        ms.Close();
    }
    Response.End();
}

Gibt es irgendetwas, was ich ändern kann, die in einer der oben genannten, um dies alles reibungslos funktioniert?

InformationsquelleAutor Sai | 2014-08-06

Schreibe einen Kommentar