- QAxObject *pExcel = new QAxObject( "Excel.Application", 0 );
- QAxObject *pWorkbooks = pExcel->querySubObject( "Workbooks" );
- QAxObject *pWorkbooks = m_pExcel->querySubObject( "Workbooks" );
- QAxObject *pWorkbook = pWorkbooks->querySubObject( "Open(const QString&)", qsFileName );
这样打开一个Excel文件,毫无问题,接下来如果我又打开一个别的Excel文件(不是用代码,而是用鼠标双击打开 )
然后在程序退出时这样释放:
- pExcel->dynamicCall( "Quit()" );
- pExcel->clear();
会把这两个打开的文件都关掉。而从正常角度来讲这里只应该关闭用代码打开的那个文件。
原因:
第一段代码启动了一个Excel程序,随后又打开了一个Excel文件。
然后又在外部打开了一个Excel文件,这次打开并没有启动一个新的Excel程序,使用的是刚刚启动的Excel。
最后执行Quit函数时把Excel程序关闭了,两个文件都被干掉了~
应该怎么办?
Thanks for your reading~