我正在尝试使用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浏览器上收到“失败 - 网络错误”。
如果我没有放入Response.Clear();和Response.Close();正如其他类似的答案所说。 excel文件生成错误。请参见下图。
更新:我在其他浏览器上查看了它,发现它正在使用IE和Firefox,但在Chrome上它现在正在运行。那么为什么chrome不像其他浏览器一样呢?
答案 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及更高版本的文件扩展名,并拒绝为其提供服务。