在ASP.NET MVC中将数据导出到Excel时出现“失败 - 网络错误”消息

时间:2017-06-07 06:00:10

标签: c# asp.net asp.net-mvc excel google-chrome

我正在尝试使用Response.ContenType方法将数据导出到excel文件asp.net mvc。以下是我的代码:

 StringBuilder sb = new StringBuilder();
 sb.Append("<table><tr><td>");
 //some code to convert database records to html table in stringbuilder

 Response.Clear();
 Response.ClearContent();
 Response.ClearHeaders();
 Response.Charset = "";
 Response.Buffer = true;
 Response.ContentType = "application/vnd.ms-excel";
 Response.AddHeader("content-disposition", "attachment;filename=UserReport.xls");
 Response.Write(sb.ToString());
 Response.Flush();
 Response.Close();

此代码正在我的本地电脑上工作,但在服务器上它无法正常工作。在服务器上我在Chrome浏览器上收到“失败 - 网络错误”。 enter image description here

如果我没有放入Response.Clear();和Response.Close();正如其他类似的答案所说。 excel文件生成错误。请参见下图。enter image description here

更新:我在其他浏览器上查看了它,发现它正在使用IE和Firefox,但在Chrome上它现在正在运行。那么为什么chrome不像其他浏览器一样呢?

1 个答案:

答案 0 :(得分:0)

<system.webServer>
  <staticContent>
    <remove fileExtension="xls"/>
    <mimeMap fileExtension="xls" mimeType="application/vnd.ms-excel"/>
  </staticContent>
</system.webServer>

OR

<configuration>
    <system.webServer>
        <staticContent>
            <mimeMap fileExtension=".xslx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
        </staticContent>
    </system.webServer>
</configuration>

检查IIS中的MIME类型,网络服务器不知道Office 2007及更高版本的文件扩展名,并拒绝为其提供服务。