關于asp.net導出Excel出現(xiàn)“異常來自 HRESULT:0x800A03EC”錯誤的另一種可能 :
Posted on 2009-12-21 12:05 阿松 閱讀(2292) 評論(2) 編輯 收藏 所屬分類: 其它, 原貼 好不容易花了半天終于解決了導出數(shù)據(jù)到Excel出現(xiàn)“異常來自 HRESULT:0x800A03EC”的錯誤。
網(wǎng)上的解決方案基本上都是說開始行的下標值寫成了0導致的“excel.Cells[0, 1] = "第1行第1列";”,改為大于0就能解決。但我的程序都是從第4行開始寫數(shù)據(jù)的,想可能不是這個問題導致的。插入斷點,調試程序,又出現(xiàn)“不能單步執(zhí)行”的錯誤。 后來又仔細看了這個異常,發(fā)現(xiàn)異常是從
“excel.ActiveWorkbook.SaveAs(FilePath + filename, Excel.XlFileFormat.xlExcel9795, null, null, false, false, Excel.XlSaveAsAccessMode.xlNoChange, null, null, null, null, null);”這個語句跳出來的,如果我把寫入數(shù)據(jù)行的小標從0開始,異常會從那個寫入行時跳出來。發(fā)現(xiàn)問題可能是在這個語句的參數(shù)上,于是隨便把語句改為了“excel.ActiveWorkbook.SaveAs(FilePath + filename, Excel.XlFileFormat.xlExcel7, null, null, false, false, Excel.XlSaveAsAccessMode.xlNoChange, null, null, null, null, null);”居然發(fā)現(xiàn)解決了問題,這個問題可能是我的Excel的版本不對吧(我的excel版本為2007)。
------------
xlBook.SaveAs(FilePath,Microsoft.Office.Interop.Excel.XlFileFormat.xlExcel8, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
發(fā)現(xiàn)Office.Interop.Excel.XlFileFormat.xlExcel8格式與本機安裝的office對不上,用Office.Interop.Excel.XlFileFormat.xlWorkbookNormal則可以