Asp.net mvc 4 使用“将数据从表格导出到excel”;xlxs";或;csv";延伸
我正在控制器中使用导出方法将数据从表格下载到excel文件,方法如下: 这是索引文件中的我的表: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 =>
<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");
}