2013-08-21 145 views
0

我在添加一个OLEObject到使用Interop库的VC++的excel工作表时遇到了问题。编译器是VC++ 2010 express。 互操作库是Office 2007VC++以编程方式添加excel OLEObject?

这里的声明:

#define XL Microsfot::Office::Interop::Excel 
... 
XL::Application^ xlApp; 
XL::Workbook^ xlWb; 
XL::Worksheet^ xlWs; 

这里的控制代码的Excel:

xlApp = gcnew XL::ApplicationClass(); 
xlWb = xlApp->Workbooks->Add(Type::Missing); 
xlWs = safe_cast<XL::Worksheet^>(xlApp->ActiveSheet); 

xlApp->Visible = true; 

xlWs->Cells[1, 1] = "OMG I can put stuff in cells no problem"; 

//this line generates an error C2227: left of '->Add' must point to class/struct/union/generic type 
xlWs->OLEObjects->Add("somefile.someext", false, false); 

我没有在Excel中的宏记录添加一个OLEOBJECT这是它产生的VB代码:

ActiveSheet.OLEObjects.Add(Filename:="C:\somefile.someext", Link:=False, DisplayAsIcon:=False).Select 

因此,有在VB中添加OLEObjects的方法,但不是在C++中? 我在做什么错?

回答

0

我明白了!

XL::OLEObjects^ xlObjs = safe_cast<XL::OLEObjects^>(xlWs->OLEObjects(Type::Missing)); 
xlObjs->Add(Type::Missing, "somefile.someext", false, false, Type::Missing, Type::Missing, Type::Missing, 0, 0, 20, 20);