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();
            }
        }

Web 应用导出的 Excel 文件 ASP.NET 出现警告弹出窗口

我相信它需要不同的内容类型:

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"。