【问题标题】:Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX) for System.Runtime.InteropServices.COMException来自 HRESULT 的异常:System.Runtime.InteropServices.COMException 的 0x8002000B (DISP_E_BADINDEX)
【发布时间】:2015-05-04 01:01:14
【问题描述】:

我有一部分代码尝试将数据(从数据库)导出到 Excel。当我尝试执行此任务时,它会生成此错误:

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

产生此错误的代码:

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");

正在生成上述错误。知道如何解决这个问题吗?

【问题讨论】:

  • ...Excel文件中真的有“Sheet3”吗?
  • 是的。我也解决了。由于程序报告 (WorksOrder_Template.xls) 中存在迁移,因此报告文件中缺少“Sheet3”。将 Sheet3 添加到该文件后,程序开始正常工作。
  • 我提高了你的问题....不知道是谁把它记下来了,因为这是一个大问题,似乎没有人能够清楚地解释出了什么问题...我尝试创建关系时也收到此错误消息,但我可以手动执行,但不能在代码中执行...即使我有另一种可以添加关系的方法也没问题,我复制了该代码,对其进行了编辑,现在它赢了不行……

标签: c# .net excel interop excel-interop


【解决方案1】:

WorksOrder_Template.xls 文件中缺少“Sheet3”,因此,当代码尝试获取“Sheet3”时会产生错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-01
    • 2013-05-26
    • 1970-01-01
    • 2015-11-08
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 2021-03-21
    相关资源
    最近更新 更多