Всплывающее предупреждение о файлах Excel, экспортируемых веб-приложением ASP.NET - PullRequest
2 голосов
/ 19 мая 2011

Я заметил, что это предупреждающее сообщение всегда появляется каждый раз, когда я открываю файл Excel, экспортированный моим веб-приложениемУбедитесь, что файл не поврежден .....

Вот код, используемый:

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

Ответы [ 3 ]

0 голосов
/ 14 декабря 2011

У меня была такая же проблема, которая была решена путем исключения расширения из имени файла.Таким образом, «Single_Raw.xls» будет «Single_Raw».

0 голосов
/ 14 декабря 2011

Полагаю, это зависит от того, какой тип mime в вашей среде должен иметь Excel-файл;Согласно этому обзору MIME-типов , есть по крайней мере следующие:

  • application / excel
  • application / vnd.ms-excel
  • application / x-excel
  • application / x-msexcel

Должен быть файл инструмента или (config) для проверки настроенных и, возможно, добавления новых типов mime в вашокружающей среды, так что, по крайней мере, вы можете избавиться от предупреждения самостоятельно.

0 голосов
/ 19 мая 2011

Я считаю, что ему нужен другой тип контента:

HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
...