Web 应用导出的 Excel 文件 ASP.NET 出现警告弹出窗口
本文关键字:NET 警告 ASP 窗口 文件 应用 Excel Web | 更新日期: 2023-09-27 17:56:47
我注意到每次打开我的 Web 应用程序导出的 excel 文件时总是弹出此警告消息
文件名.xls采用不同的格式 比文件扩展名指定的。 验证文件是否不是 损坏。。。。。
以下是使用的代码:
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "Single_Raw.xls"));
HttpContext.Current.Response.ContentType = "application/ms-excel";
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter htw = new HtmlTextWriter(sw))
{
Table tb = new Table();
TableRow tr = new TableRow();
tr.Cells.Add((rawRow((lblPOR1.Text.Substring(0, 4)), (lblPOR1.Text.Substring(5, 3)), (lblPOR1.Text.Substring(9, 3)), lblPNL.Text.ToString())));
TableCell cell3 = new TableCell();
cell3.Text = " ";
TableRow tr2 = new TableRow();
tr2.Cells.Add((rawRow((lblPOR2.Text.Substring(0, 4)), (lblPOR2.Text.Substring(5, 3)), (lblPOR2.Text.Substring(9, 3)), lblPNL.Text.ToString())));
tb.Rows.Add(tr);
tb.Rows.Add(tr2);
tb.RenderControl(htw);
HttpContext.Current.Response.Write(sw.ToString());
HttpContext.Current.Response.End();
}
}
我相信它需要不同的内容类型:
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
我想这取决于您的环境认为 excel 文件应该具有的 mime 类型;根据对 MIME 类型的概述,至少有这些常见
:- 应用程序/卓越
- application/vnd.ms-excel
- 应用程序/X-Excel
- 应用程序/X-MSexcel
应该有一个工具或(配置)文件来检查已配置的,并可能在您的环境中添加新的 mime 类型,因此至少您可以自己摆脱警告。
我遇到了同样的问题,通过将扩展名排除在文件名之外来解决。所以"Single_Raw.xls"就是"Single_Raw"。