Asp.net mvc 4 使用“将数据从表格导出到excel”;xlxs";或;csv";延伸

Asp.net mvc 4 使用“将数据从表格导出到excel”;xlxs";或;csv";延伸,asp.net-mvc-4,export-to-excel,Asp.net Mvc 4,Export To Excel,我正在控制器中使用导出方法将数据从表格下载到excel文件,方法如下: 这是索引文件中的我的表: <table class="table"> <tr> <th> @Html.DisplayNameFor(model => model.Name) </th> <th> @Html.DisplayNameFor(model =>

我正在控制器中使用导出方法将数据从表格下载到excel文件,方法如下: 这是索引文件中的我的表:

<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Marks)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Grade)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Marks)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Grade)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.id }) |
            @Html.ActionLink("Details", "Details", new { id=item.id }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.id })
        </td>
    </tr>
}

</table>
一切正常。表格可以轻松下载到excel文件中,但当我打开文件时,在“打开文件”的开头出现以下错误: 文件格式不匹配。文件可能已损坏或不安全。
这个问题主要是因为文件是用xls格式保存的,而我想用xlxs格式保存,这怎么可能呢

要将MVC视图数据导出到Excel文件中,我使用ClosedXml库


链接到完整文章

这可能会导致您的问题:
Response.AddHeader(“内容处置”,“附件;文件名=Marklist.xls”)。您可以在那里使用
xlsx
扩展名。另外,我建议您删除
Response.Output.Write
并返回
FileStreamResult
/
FileContentResult
。如何替换此Response.Output.Write?我已尝试在Response.AddHeader中添加xlsx。它并不能解决问题
 public ActionResult ExportData()
        {
            GridView gv = new GridView();
            gv.DataSource = db.Studentrecords.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();

            return RedirectToAction("StudentDetails");
        }
public ActionResult ExportToExcel()
    {
        var gv = new GridView();
        gv.DataSource = this.GetEmployeeList();
        gv.DataBind();

        Response.ClearContent();
        Response.Buffer = true;
        Response.AddHeader("content-disposition", "attachment; filename=DemoExcel.xls");
        Response.ContentType = "application/ms-excel";

        Response.Charset = "";
        StringWriter objStringWriter = new StringWriter();
        HtmlTextWriter objHtmlTextWriter = new HtmlTextWriter(objStringWriter);

        gv.RenderControl(objHtmlTextWriter);

        Response.Output.Write(objStringWriter.ToString());
        Response.Flush();
        Response.End();

        return View("Index");

    }