【问题标题】:xlsx File format is not validxlsx 文件格式无效
【发布时间】:2018-06-06 08:02:25
【问题描述】:

我使用 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();

有什么问题?

【问题讨论】:

    标签: asp.net-mvc export-to-excel system.io.file


    【解决方案1】:

    问题是html 既不是xls 也不是xlsx

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

    但是xlsx 应该是zip,里面有一些xmls,所以消息不同:

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

    【讨论】:

    • 还有其他方法可以使用同一个库吗?
    • @Faizan,你可以用 HtmlTextWriter 做的不仅仅是创建 HTML。你可以google一下,有很多.NET库可以生成真正的Excel格式的文件。其中一些可以免费使用。
    • @Faizan,使用 OpenXML 和一些包装器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多