2014-09-02 66 views
0

我使用C#在asp.net中開發了一個響應式網站,它在桌面和手機中都可以正常工作,所有功能性工作都很好。諾基亞Lumia 920 Excel未打開

但是在諾基亞Lumia 920上,當我下載Excel時,它被下載了,但是沒有在手機中打開。它拋出錯誤,如 格式不正確

我已經使用了下文提到的代碼下載Excel的

Response.AddHeader("content-disposition", "attachment;filename=" + ExcelFileName + ".xlsx"); 
Response.Charset = ""; 
Response.ContentType = "application/vnd.ms-excel"; 
StringBuilder build = new StringBuilder(); 
//buid contain data 
Response.Output.Write(build.ToString()); 
Response.Flush(); 
Response.End(); 

什麼可以解決?

+0

嘗試改變的ContentType爲「application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 「。另外,你確定你需要這個標題「內容處置」嗎?通常這是電子郵件附件 – 2014-09-02 10:27:33

+0

@StefanoDriussi:Nop它仍然給我同樣的錯誤 – 2014-09-02 10:38:48

回答

0

手機沒有問題,問題出在您的代碼中。你正在提供html,並在響應頭文件中設置響應是xlsx,所以實際上它是不正確的格式,它不是電話所期望的xlsx。

在桌面上,這隻適用於becouse桌面excel知道如何使用html表格並將其顯示爲excell表格,但AFAIK Excel 2007和更新版本警告用戶數據格式不正確。

唯一的解決方案是使用一些excel庫並生成真正的excel文件。例如使用EPPlus這很簡單,它在服務器上工作正常。

這裏是出口ADO.NET數據表到Excel片和它服務到客戶機的例子:

https://stackoverflow.com/a/9569827/351383

+0

它的工作所有其他手機它只是沒有工作諾基亞Lumia 920 – 2014-09-02 10:34:43