sql-server - 将数据库中的数据导出到excel文件中
问题描述
我有将数据导出到 excel 文件的代码。当我导出 excel 文件时,excel 文件在打开时出现错误。
“Farmer_Sample (4).xls”的文件格式和扩展名不匹配。该文件可能已损坏或不安全。除非你相信它的来源,否则不要打开它。你还是要打开它吗?
(是)(否)(帮助)
这是代码:
public ActionResult ExportToExcel()
{
var data = db.farmerSample.ToList();
GridView gridview = new GridView();
gridview.DataSource = data;
gridview.DataBind();
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment; filename = Farmer_Sample.xls");
Response.ContentType = "application/vnd.ms-excel";
Response.Charset = "";
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter htw = new HtmlTextWriter(sw))
{
// render the GridView to the HtmlTextWriter
gridview.RenderControl(htw);
// Output the GridView content saved into StringWriter
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
}
}
return View();
}
解决方案
您收到警告消息只是因为生成的文件不是真正的 xls 文件...在您的代码示例中...GridView RenderContol 仅生成的 HTML 表。
对于解决方案...您可以使用 ClosedXML Library..和 3rd Party Reference Tools..
或者你可以参考这个链接