晚期绑定Excel组件遇到的麻烦
各位好:
现在为了解决调用Excel COM组件的版本问题,我用了晚期绑定技术,这有一段从MSDN上摘下来的代码:
Type objClassType;
objClassType = Type.GetTypeFromProgID( "Excel.Application ");
objApp_Late = Activator.CreateInstance(objClassType);
//Get the workbooks collection.
objBooks_Late = objApp_Late.GetType().InvokeMember( "Workbooks ",
BindingFlags.GetProperty, null, objApp_Late, null);
//Add a new workbook.
objBook_Late = objBooks_Late.GetType().InvokeMember( "Add ",
BindingFlags.InvokeMethod, null, objBooks_Late, null);
//Get the worksheets collection.
objSheets_Late = objBook_Late.GetType().InvokeMember( "Worksheets ",
BindingFlags.GetProperty, null, objBook_Late, null);
//Get the first worksheet.
Parameters = new Object[1];
Parameters[0] = 1;
objSheet_Late = objSheets_Late.GetType().InvokeMember( "Item ",
BindingFlags.GetProperty, null, objSheets_Late, Parameters);
//Get a range object that contains cell A1.
Parameters = new Object[2];
Parameters[0] = "A1 ";
Parameters[1] = Missing.Value;
objRange_Late = objSheet_Late.GetType().InvokeMember( "Range ",
BindingFlags.GetProperty, null, objSheet_Late, Parameters);
//Write "Hello, World! " in cell A1.
Parameters = new Object[1];
Parameters[0] = "Hello, World! ";
objRange_Late.GetType().InvokeMember( "Value ", BindingFlags.SetProperty,
null, objRange_Late, Parameters);
//Return control of Excel to the user.
Parameters = new Object[1];
Parameters[0] = true;
objApp_Late.GetType().InvokeMember( "Visible ", BindingFlags.SetProperty,
null, objApp_Late, Parameters);
objApp_Late.GetType().InvokeMember( "UserControl ", BindingFlags.SetProperty,
null, objApp_Late, Parameters);
这段代码仅仅是向EXCEL写入“hello world”,那么其他操作(打印)该怎么写呢?
谢谢
[解决办法]
这段代码的效率也太高了,其它操作继续InvokeMember,把BindingFlags换一个标志
[解决办法]
InvokeMember
强
不过其实只要知道方法或者属性也还可以