2014-02-10 6 views
0

Я пытаюсь экспортировать данные на лист Excel.Экспорт в Excel в MVC

я попытался следующий код:

var grid = new System.Web.UI.WebControls.GridView(); 
var dbcontext = new HotelDbContext(); 
grid.DataSource = dbcontext.Database.SqlQuery<ReportsDTO>("Usp_GetDaysBillReport").ToList(); 
grid.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); 
grid.RenderControl(htw); 
Response.Output.Write(sw.ToString()); 
Response.Flush(); 
Response.End(); 

я не получил какой-либо ошибки, а также файл не загруженный.

+0

Где у вас есть этот код (контроллер, вид и т.д.)? – wdosanjos

+0

У меня эти коды в контроллере. – user3172321

ответ

0

Пожалуйста, попробуйте следующее в контроллере:

public FileContentResult DownloadExcel() 
    { 
     var grid = new System.Web.UI.WebControls.GridView(); 
     var dbcontext = new HotelDbContext(); 
     grid.DataSource = dbcontext.Database.SqlQuery<ReportsDTO>("Usp_GetDaysBillReport").ToList(); 
     grid.DataBind(); 
     StringWriter sw = new StringWriter(); 
     HtmlTextWriter htw = new HtmlTextWriter(sw); 
     grid.RenderControl(htw); 

     return File(Encoding.UTF8.GetBytes(sw.ToString()), 
        "application/ms-excel", 
        "Marklist.xls"); 
    }