2011-05-19 123 views
2

我注意到,此警告消息總是每次我打開我的web應用程序彈出警告

filename.xls導出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(); 
      } 
     } 

回答

0

我相信,它需要一個不同的內容類型:

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

警告仍顯示 – 2011-05-19 02:53:07

0

我有同樣的問題,這是通過將擴展名留在文件名之外解決的。所以「Single_Raw.xls」將是「Single_Raw」。

0

我想這取決於你的環境認爲一個Excel文件應該有什麼樣的MIME類型;根據mime types本概述,至少有這些常見的:

  • 應用/ EXCEL
  • 應用/ vnd.ms-的excel
  • 應用程序/ x-的excel
  • 應用程序/ x-msexcel的

應該有一個工具或(配置)文件來檢查配置,並可能在您的環境中添加新的MIME類型,所以至少您可以自己擺脫警告。