关于C++ Builderf操纵Excel表的问题,向大虾请教
我是用OLE来操纵EXCEL表的,打开表,存入数据都没有问题,问题是如果一个表已经通过应用程序打开,以后如何判断EXCEL表已经打开,避免重复打开Excel程序,和某个工作表,谢谢诸位仁兄的帮助
[解决办法]
TCOM_Application iExcelApp;
HRESULT hr;
IUnknown * IUnExcelAppPtr;
hr=GetActiveObject(CLSID_ExcelApplication,0,(IUnknown **)&IUnExcelAppPtr);
if(hr==MK_E_UNAVAILABLE)
{
ShowMessage( "没有Excel启动,重新启动Excel用来控制。 ");
try{iExcelApp=CoExcelApplication::Create();}
//CoExcelApplication 位于 Excel_2k.h
catch(...) {ShowMessage( "启动 Excel 出错, 大概是没装Excel ");return;}
}
else
{
ShowMessage( "已经有个Excel启动了,就【接】上这个操作。 ");
IUnExcelAppPtr-> QueryInterface(IID__Application,(void**)&iExcelApp) ;
IUnExcelAppPtr-> Release();
}
[解决办法]
枚举Excel应用程序的实例,对每一个实例找当前打开的文件