首页 > 解决方案 > 将数据库中的数据导出到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();
    }

标签: sql-serverasp.net-mvc

解决方案


您收到警告消息只是因为生成的文件不是真正的 xls 文件...在您的代码示例中...GridView RenderContol 仅生成的 HTML 表。

对于解决方案...您可以使用 ClosedXML Library..和 3rd Party Reference Tools..

或者你可以参考这个链接

https://www.aspsnippets.com/Articles/Solution-ASPNet-GridView-Export-to-Excel-The-file-you-are-trying-to-open-is-in-a-different-format-than-指定的文件扩展名.aspx


推荐阅读