通过程序(自动)打开excel时,我无法访问excel Worksheet
。它给出了System.NullReferenceException
保存excel时工作正常,我手动将其打开并运行以下代码。
Excel.Application excel;
excel = System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application") as Excel.Application;
Excel.Workbook WB;
Excel.Worksheet xlWorksheet;
xlWorksheet = (Excel.Worksheet)excel.ActiveSheet; //error line
Excel.Range xlRange = xlWorksheet.UsedRange;
...
...
请注意,即使程序打开了excel,此行excel = System.Runtime.InteropServices.Marshal..
也会通过调试。错误出现在上面代码中标记为“错误行”的行
当程序打开excel时如何使上述代码工作
编辑:以下是更清晰的场景
答案 0 :(得分:0)
我遇到问题是因为excel进程是从以前的会话运行的。当以上代码尝试连接到由另一个程序打开的excel工作表时,它给了null
一个异常。
解决的办法是在运行上述代码之前结束所有excel进程。
不知何故,当我在手动保存的excel上运行代码时,它没有抱怨。我不确定为什么会发生这种情况,但现在可以解决。