首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

晚期绑定Excel组件遇到的麻烦,该怎么解决

2012-02-17 
晚期绑定Excel组件遇到的麻烦各位好:现在为了解决调用ExcelCOM组件的版本问题,我用了晚期绑定技术,这有一

晚期绑定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

不过其实只要知道方法或者属性也还可以

热点排行