Asp.net mvc xlsx文件格式无效

Asp.net mvc xlsx文件格式无效,asp.net-mvc,export-to-excel,system.io.file,Asp.net Mvc,Export To Excel,System.io.file,我已经使用System.IO在Excel中导出了报告。对于.xls扩展名,它可以正常工作,但当我将扩展名更改为.xlsx时,它会给出一个错误,即扩展名不正确或文件格式不正确 var grdview = new GridView(); grdview.DataSource = this.GetSequence(); grdview.DataBind(); Response.ClearContent();

我已经使用System.IO在Excel中导出了报告。对于.xls扩展名,它可以正常工作,但当我将扩展名更改为.xlsx时,它会给出一个错误,即扩展名不正确或文件格式不正确

var grdview = new GridView();
            grdview.DataSource = this.GetSequence();
            grdview.DataBind();
            Response.ClearContent();
            Response.Buffer = true;
            Response.AddHeader("content-disposition", "attachment; filename= Search Report " + Date + " - " + Date1 + ".xls ");
            Response.ContentType = "application/ms-excel";
            Response.Charset = "";
            StringWriter strWriter = new StringWriter();
            HtmlTextWriter htmlWriter = new HtmlTextWriter(strWriter);
            htmlWriter.Write("<table><tr><td colspan='13' align='center'><font size='45'>Search Report of Regular Passenger</font></td></tr></table>");
            grdview.RenderControl(htmlWriter);
            Response.Output.Write(strWriter.ToString());
            Response.Flush();
            Response.End();
问题是什么?

问题是html是niether xls或xlsx

对于作为过时格式的xls,Excel会尝试解决您的问题,并检查其支持的所有格式:

但是xlsx应该是zip格式,内部包含一些XML,因此消息不同:


您必须使用相应的库来创建真正的excel文件。

是否有其他方法使用同一个库?@Faizan,使用HtmlTextWriter所能做的只是创建HTML。你可以在谷歌上搜索,有许多.NET库可以生成正版Excel格式的文件。其中一些是免费使用的。@Faizan,使用OpenXML和一些包装器。