In this article I will show you how to export student detail from MVC 5 application using Entity-framework. Let start with creating simple MVC 5 project.
1. Open Visual Studio 2015 => New Project => Select ASP.Net web Application => Name it Export => Click ok
2. Select MVC click OK.
3. Now add 2 class files name it as ExportDB and StudentDetail respectively. And add below mentioned code to StudentDetail class.
4. Now add right click on controller => Add => Controller.
Select MVC 5 Controller with views, using entity Framework.
5. Put model class as "StudentDetail" and data context class as “Export_XlsCsvExcel” then click on Add button. It will create one controller file and 5 cshtml files in views for index/add/edit/delete.
6. Run application by F5 and in your URL type studentdetails if cause error then type studentdetails/create otherwise click on create new. Add data from here.
7. After adding records from application. Add the following code in studentdetailscontroller
NOTE: For the ExcelPackage() have to add EPPlus.dll to the references. Download EPPlus.dll from HERE. Add the downloaded dll to solution bin folder (C:\Export\Export\bin). In the solution click on add reference browse it from bin folder and add it.
8. Add following code in index.cshtml
@using (Html.BeginForm("ExportData", "StudentDetails", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<table><tbody>
<tr> <td></td> <td>
<input id="Export" name="Export" type="submit" value="XLS" />
</td><td></td> <td>
<input id="Export" name="Export" type="submit" value="CSV" />
</td><td></td> <td>
<input id="Export" name="Export" type="submit" value="XLSX" />
</td><td></td> </tr>
</tbody></table>
}
9. Now run application and append studentdetails on URL and click on export button.
This will export you data into Xls, CSV and Excel.
1. Open Visual Studio 2015 => New Project => Select ASP.Net web Application => Name it Export => Click ok
2. Select MVC click OK.
3. Now add 2 class files name it as ExportDB and StudentDetail respectively. And add below mentioned code to StudentDetail class.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| public class Export_XlsCsvExcel: DbContext{public DbSet<StudentDetail> Studentrecord{ get; set; }}public class StudentDetail{[Key]public int id { get; set; }[Required]public String Name { get; set; }public String Address { get; set; }public String Marks { get; set; }}
|
4. Now add right click on controller => Add => Controller.
Select MVC 5 Controller with views, using entity Framework.
5. Put model class as "StudentDetail" and data context class as “Export_XlsCsvExcel” then click on Add button. It will create one controller file and 5 cshtml files in views for index/add/edit/delete.
6. Run application by F5 and in your URL type studentdetails if cause error then type studentdetails/create otherwise click on create new. Add data from here.
7. After adding records from application. Add the following code in studentdetailscontroller
public ActionResult ExportData() { string val = Request["Export"].ToString(); List<StudentDetail> lst = db.Studentrecord.ToList(); if (val.ToLower() == "xls") { GridView gv = new GridView(); gv.DataSource = db.Studentrecord.ToList(); gv.DataBind(); Response.ClearContent(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment; filename=Marklist.xls"); Response.ContentType = "application/ms-excel"; Response.Charset = ""; StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); gv.RenderControl(htw); Response.Output.Write(sw.ToString()); Response.Flush(); Response.End(); } else if (val.ToLower() == "csv") { StringBuilder sb = new StringBuilder(); string[] columns = new string[4] { "StudentId", "Name", "Address", "Marks" }; for (int k = 0; k < columns.Length; k++) { //add separator sb.Append(columns[k].ToString() + ','); } sb.Append("\r\n"); foreach (StudentDetail item in lst) { sb.Append(item.id + ","); sb.Append(item.Name + ","); sb.Append(item.Address + ","); sb.Append(item.Marks); //append new line sb.Append("\r\n"); } Response.Clear(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment;filename=Marklist.csv"); Response.Charset = ""; Response.ContentType = "application/text"; Response.Output.Write(sb.ToString()); Response.Flush(); Response.End(); } else if (val.ToLower() == "xlsx") { var data = from stuDetails in lst select new { StudentId = stuDetails.id, Name = stuDetails.Name, Address = stuDetails.Address, Marks = stuDetails.Marks }; ExcelPackage excel = new ExcelPackage(); var workSheet = excel.Workbook.Worksheets.Add("Sheet1"); workSheet.Cells[1, 1].LoadFromCollection(data, true); using (var memoryStream = new MemoryStream()) { Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", "attachment; filename=Marklist.xslx"); excel.SaveAs(memoryStream); memoryStream.WriteTo(Response.OutputStream); Response.Flush(); Response.End(); } } return RedirectToAction("StudentDetails"); }
NOTE: For the ExcelPackage() have to add EPPlus.dll to the references. Download EPPlus.dll from HERE. Add the downloaded dll to solution bin folder (C:\Export\Export\bin). In the solution click on add reference browse it from bin folder and add it.
8. Add following code in index.cshtml
@using (Html.BeginForm("ExportData", "StudentDetails", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<table><tbody>
<tr> <td></td> <td>
<input id="Export" name="Export" type="submit" value="XLS" />
</td><td></td> <td>
<input id="Export" name="Export" type="submit" value="CSV" />
</td><td></td> <td>
<input id="Export" name="Export" type="submit" value="XLSX" />
</td><td></td> </tr>
</tbody></table>
}
9. Now run application and append studentdetails on URL and click on export button.
This will export you data into Xls, CSV and Excel.





