Here we will see how to export a HTML table content to excel using asp.net web form and C# using jQuery.
Let’s start with a small piece of code –
Step 2-
Step 3 & 4-
You can also download the code from here.
Let’s start with a small piece of code –
<h2> Export to excel using jquery </h2> <a href="#" class="expToExcel">Export to excel</a> <div id="toReport"> <table> <tr> <th>Name</th> <th>Age</th> <th>Email</th> </tr> <tr> <td>John</td> <td>44</td> <td>john@gmail.com</td> </tr> <tr> <td>Rambo</td> <td>33</td> <td>rambo@gmail.com</td> </tr> <tr> <td>It's hot</td> <td>33</td> <td>test@hotmail.com</td> </tr> </table> </div>On click of "Export to excel" let do export the content to excel file using jQuery. We can do this in following steps-
- Get the HTML content.
- Encode the HTML content.
- Pass the HTML encoded content to an aspx page.
- Generate the excel file from code behind.
var data = $("#toReport").html(); data = escape(data);Why we are escaping the HTML data and then passing to code behind. Answer is that we are going to pass the data to an aspx page using a dynamically created form. It is going to through "A potentially dangerous Request.Form value was detected from the client" error. That’s why we are escaping the HTML content.
Step 2-
$('body').prepend("<form method='post' action='exportPage.aspx' style='top:-3333333333px;' id='tempForm'><input type='hidden' name='data' value='" + data + "' ></form>"); $('#tempForm').submit(); $("tempForm").remove();In this step we are adding an aspx page named exportPage.aspx. And creating a form tag on the fly, add the HTML data to a hidden field and submit the form using jQuery. And finally remove the added form tag.
Step 3 & 4-
string data = Request.Form["data"]; data = HttpUtility.UrlDecode(data); Response.Clear(); Response.AddHeader("content-disposition", "attachment;filename=report.xls"); Response.Charset = ""; Response.ContentType = "application/excel"; HttpContext.Current.Response.Write( data ); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.End();In this step we are simply creating the excel file and flushing the result as excel. You may see a message saying corrupt excel file do you want to open the file. You can open the file not an issue. I am too lazy to fine out proper setting.
You can also download the code from here.