...C#自动化到Excel
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已经在屏幕上打开,并且新的工作表已经就位。
可能不是你要找的答案玩,但我发现C#的办公室互操作支持,极不理想很多。另一方面,我发现VB.NET在Excel自动化方面更稳定。只是一些我从事的项目的个人观察。 – Nasir
呃,我刚刚在C#中完成了这个。感谢您对VB.NET的建议 – user225626
@ nsr81 C#或VB没有任何问题。它全部被编译成MSIL。继续话题? – RichardTheKiwi