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

问题描述 投票:0回答:2
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");

正在生成上述错误。任何想法如何解决这个问题?
    

“ sheet3”是从worksordor_template.xls文件中缺少的,因此,当代码尝试获取'sheet3'时,它会生成错误。

这不一定适用于OP如何分配其工作簿对象,但是如果您碰巧使用

c# .net excel interop excel-interop
2个回答
13
投票

如果有一个隐藏的Excel运行实例,则可以触发此错误。 WB对象可以分配给隐藏实例的活动工作簿。不是您的意图工作簿。如果该工作簿没有具有相同名称的工作簿,则将触发此错误。 您将需要杀死隐藏的Excel实例才能实际针对活动的工作簿。然后,假设它具有您要访问的表格,则应该有效。


0
投票
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.