2012-05-18 66 views
1

我已經使用SOAP工具箱(不再支持)將Excel 2003電子表格轉換爲使用VSTO的Excel 2010的Web服務調用。C# - 下載Excel 2010的錯誤

電子數據表工作得很好,並做它應該(大部分),現在我想讓它從網站提供給用戶。

我原以爲它應該和提供仍然可用的2003版本相同,所以我基本上覆制了Excel 2003電子表格的下載按鈕,它的工作方式應該如此。

當我嘗試這爲2010年的試算表,我得到一個Excel的錯誤,說明

「的Excel發現無法讀取內容‘SpreadSheet_name.xlsx’。你要恢復此工作簿的內容嗎?如果您信任的此工作簿的源,請單擊是。「

Excel然後修復問題,電子表格可以正常使用。

當我從完成下載的源文件夾中打開電子表格時,打開時根本沒有錯誤,因爲它一旦修復上述錯誤並保存文件就會打開。

這是用於當前的Excel 2003的下載按鈕的代碼 -

Response.WriteFileAsAttachment("application/ms-excel", Server.MapPath("~/pathname/Spreadsheet_2003.xls"), 8192); 
Response.End(); 

這是我對2010年的下載按鈕,點擊它是以上爲Excel 2010的更新MIME信息 -

Response.WriteFileAsAttachment("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", Server.MapPath("~/pathname/Spreadsheet_2010.xls"), 8192); 
Response.End(); 

我嘗試了幾種在各種論壇上提出的建議,並且都有相同的結果。

我使用C#和ASP.Net運行通過VS 2010來測試這個,所以有人建議在VS中有限的IIS可能是一個問題?

任何幫助或建議將不勝感激。

謝謝喬治。

+0

我注意到你在2010下載按鈕中的擴展名有一個「xmls」擴展名,但是你的錯誤信息有一個「xlsx」擴展名我不認爲這是你問題的根源,但它確實導致Excel在嘗試以與擴展名不匹配的格式打開文件時發出警告對話框 –

+0

對不起,「xmls」應該是「xls」。沒有及時注意修復 –

+0

對不起,這只是上面的文本中的一個錯誤,在代碼中第二個是.xlsx – George

回答

0

我們使用的遠程訪問通信存在問題,導致下載時出現此問題。它不是公司會解決的問題,所以我們必須忍受它並解決它。 :(