2015-03-03 314 views
4

我有一部分代碼試圖將數據(從數據庫)導出到Excel。當我試圖執行此任務,則產生這樣的錯誤:異常來自HRESULT:0x8002000B(DISP_E_BADINDEX)System.Runtime.InteropServices.COMException

string ExcelFileName = RootFolder + "\\" + "Work_Sheet.xls"; 
File.Copy(RootFolder + "\\" + "WorksOrder_Template.xls", ExcelFileName); 
Excel.Workbook xlWorkBook; 
xlWorkBook = excelApp.Workbooks.Open(ExcelFileName, 0, false, Type.Missing, Type.Missing, Type.Missing, true, Type.Missing, Type.Missing, Type.Missing, true, Type.Missing, false, true, Type.Missing); 
Excel.Worksheet Page2; 
Excel.Worksheet Page3; 
Page2 = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item("Sheet2"); 
Page3 = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item("Sheet3"); 

的代碼行:

Page3 = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item("Sheet3"); 

是產生在產生這個錯誤

System.Runtime.InteropServices.COMException occurred 
Additional information: Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX)) 

代碼上述錯誤。任何想法如何解決這個問題?

+4

...在Excel文件中是否實際存在「Sheet3」? – 2015-03-03 11:35:33

+1

是的。我也解決了它。由於程序報告(WorksOrder_Template.xls)中存在遷移,不幸的是報告文件中缺少'Sheet3'。將Sheet3添加到該文件後,程序開始正常工作。 – 2015-03-03 11:45:37

+1

我提出了你的問題....不知道是誰標記的,因爲這是一個大問題,沒有人似乎能夠給出明確的錯誤解釋...我也收到此錯誤消息時試圖創建關係,但我可以手動完成,但不能在代碼中完成......儘管我有另一種可以添加關係的方法沒有問題,但我複製了該代碼,對其進行了編輯,現在無法工作...... – 2016-11-02 13:12:49

回答

6

WorksOrder_Template.xls文件中缺少「Sheet3」,因此,當代碼嘗試讀取「Sheet3」時,它會生成錯誤。

相關問題