Saturday, August 27, 2011

Exporting datatable to excel

private void ExportToExcel(DataTable dtExcel)
    {
        string fileName = "ExportTocsv";

        HttpContext context = HttpContext.Current;
        context.Response.Clear();

        foreach (DataColumn column in toExcel.Columns)
        {
            context.Response.Write(column.ColumnName);
            context.Response.Write("\t");
        }

        context.Response.Write(Environment.NewLine);
        int index = 1;
        foreach (DataRow row in toExcel.Rows)
        {
            row[0] = index;
            for (int i = 0; i < toExcel.Columns.Count; i++)
            {
                string val = row[i].ToString();
                context.Response.Write(val.Trim());
                context.Response.Write("\t");
            }
            context.Response.Write(Environment.NewLine);
            index += 1;
        }

        context.Response.ContentType = "application/vnd.ms-excel";
        context.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName);
        context.Response.End();
    }

//This will work very efficiently if you have thousands of rows also

No comments:

Post a Comment