2015-03-03 299 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”时,它会生成错误。

相关问题