使用Razor视图定义的结构

问题描述:

创建Excel文件,我想用我的Razor视图字符串创建一个.xlsx文件不.xls的,但它并不在这里工作是我的代码使用Razor视图定义的结构

private ContentResult GenerateExcel<T>(string viewName, T model) where T : class 
    { 
     var htmlViewRenderer = new HtmlViewRenderer(); 
     string htmlText = htmlViewRenderer.RenderViewToString(this, viewName, model); 
     // byte[] renderedBuffer; 
     Response.ClearContent(); 
     Response.Buffer = true; 

     Response.AddHeader("content-disposition", "attachment; filename=Marklist.xlsx"); 
     Response.ContentType = "application/ms-excel"; 
     Response.Charset = ""; 
     StringWriter sw = new StringWriter(); 
     HtmlTextWriter htw = new HtmlTextWriter(sw); 

     Response.Output.Write(htmlText.ToString()); 
     Response.Flush(); 
     Response.End(); 
     return Content(htmlText,Response.ContentType); 

    } 
+0

可能的重复[什么是正确的内容类型的Excel文件?](http://stackoverflow.com/问题/ 2937465/what-is-correct-content-type-for-excel-files) – 2014-09-24 09:57:10

+0

@ Pedro.The.Kid谢谢,但我已经试过这个,但是这不适用于XLSX格式,当我明确地将xlsx的扩展名更改为xls它工作 – Rutu 2014-09-24 10:27:43

+0

它指出,对于XLSX的内容类型是不同的 – 2014-09-24 12:47:46

iText的锐利自带nuget包它帮助创建excel我使用它,它没有任何问题的xls或xlsx格式