我已經使用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可能是一個問題?
任何幫助或建議將不勝感激。
謝謝喬治。
我注意到你在2010下載按鈕中的擴展名有一個「xmls」擴展名,但是你的錯誤信息有一個「xlsx」擴展名我不認爲這是你問題的根源,但它確實導致Excel在嘗試以與擴展名不匹配的格式打開文件時發出警告對話框 –
對不起,「xmls」應該是「xls」。沒有及時注意修復 –
對不起,這只是上面的文本中的一個錯誤,在代碼中第二個是.xlsx – George