Declare GridView and Button as below
<asp:GridView ID="gridViewPermission" runat="server" >
</asp:GridView>
<asp:Button ID="buttonExportUsers" runat="server" Text="Export Users" onclick="ButtonExportUsers_Click" OnClientClick="window.setTimeout(function() { _spFormOnSubmitCalled = false; }, 10);"/>
Note the OnClientClick event for button
There are two approaches to export it
1. Export to csv file
2. Export to excel file
1. Export to csv file
StringBuilder sb = new StringBuilder();
GridViewRow grHeader = gridViewPermission.HeaderRow;
int counter = 0;
foreach (TableCell tc in grHeader.Cells)
{
sb.Append("" + tc.Text + " ,");
counter++;
}
sb.AppendLine();
foreach (GridViewRow gr in gridViewPermission.Rows)
{
foreach (TableCell tc in gr.Cells)
{
sb.Append("" + tc.Text + " ,");
}
sb.AppendLine();
}
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.AddHeader(" content-disposition", " attachment; filename=" + strSite + "_Users_" + strDate + ".csv");
Response.ContentType = " text/csv";
Response.AddHeader(" Pragma", " public");
Response.Write(sb.ToString());
Response.End();
2. Export to excel file
Response.ClearContent();
Response.AddHeader("content-disposition", " attachment; filename=" + strSite + "_Users_" + strDate + ".xls");
Response.ContentType = "application/vnd.ms-excel";
string tab = string.Empty;
GridViewRow grHeader = gridViewPermission.HeaderRow;
foreach (TableCell headerCell in grHeader.Cells)
{
Response.Write(tab + headerCell.Text );
tab = "\t";
}
Response.Write("\n");
foreach (GridViewRow gridViewRow in gridViewPermission.Rows)
{
tab = string.Empty;
foreach (TableCell dataCell in gridViewRow.Cells)
{
Response.Write(tab + dataCell.Text.Replace(CommonFunctions.SpaceText,string.Empty) );
tab = "\t";
}
Response.Write("\n");
}
Response.End();
References - http://www.fewlines4biju.com/2011/11/export-gridview-data-to-excel-aspnet.html
Thursday, March 20, 2014
Subscribe to:
Posts (Atom)