...
Excel.Application oXL;
Excel._Workbook oWB;
Excel._Worksheet oSheet;
oXL = new Excel.Application();
oWB = (Excel._Workbook)oXL.ActiveWorkbook;
oSheet = (Excel._Worksheet)oWB.Sheets[1];
oSheet.Cells[5,10] = "Value";
...
在崩溃时产生这个:
Unhandled Exception: System.NullReferenceException: Object reference not set to
an instance of an object.
at ConsoleApplication1.Program.Main(String[] args) in C:\Wherever\Visual Studio 2008\Projects\ConsoleApplication20\ConsoleApplication20\Program.
cs:line 60
在这种情况下,第60行是
oSheet = (Excel._Worksheet)oWB.Sheets[1];
如果写行
,也会发生同样的事情
oSheet = (Excel._Worksheet)oWB.ActiveSheet;
。
Excel当时已在屏幕上打开,并附有一份新的工作表。
答案 0 :(得分:2)
错误告诉您oWB为空。它为null,因为与从GUI打开Excel不同,自动化不会创建一个新的3页书。您需要先专门加载一本书,或者添加一本书。
请参阅此处的示例http://support.microsoft.com/kb/302084,其中明确添加了一个与
一起使用的新工作簿 //Get a new workbook.
oWB = (Excel._Workbook)(oXL.Workbooks.Add( Missing.Value ));