VS操作word,往文档中写入如几万条的数据后,保存word,然后释放资源关闭winword.exe过程中,会出现winWord.exe未退出(数据量不大时操作是正常的),请教下,这有可能是什么原因,可否有方法解决?
下列代码:
void CWord::CloseApp()
{
m_wdTable.ReleaseDispatch();
m_wdRange.ReleaseDispatch();
m_wdSel.ReleaseDispatch();
m_wdDoc.Save();
m_wdApp.Quit(vFalse, VTrue, VFalse);
m_wdDoc.ReleaseDispatch;
m_wdDocs.ReleaseDispatch;
m_wdApp.ReleaseDispatch;
}
调用:
SaveDocumentAs(strWordPath);
CloseApp();
急,在线等,求各路大神赐教
数据量比较大,需要一定的时间来保存到磁盘吧。你写一部分调用一次保存,这样试试。
数据量大时读、写、存储操作的时间都会变长,即使是txt文档也是这样。word相对于程序实际上是第三方程序,属于另外一个进程,有时候并不完全受你的控制。使用定位读写可能会快一点,存储操作实际上是调用了word本身的存储机制,具体时间要看文件长度。如果没有存储完成或者有其他异常,
你就释放了你的资源,就会造成word文档的进程还是存在,而且无法关闭,下次再次打开这个文档就会报错。以前写过操作EXCEL经常碰到此类问题。
你发出退出命令后必须监视word进程,直至word进程消失你才能进行下一步操作。而且word本身的Quit退出函数执行的效果感觉不是很好,不行就直接使用 shell退出命令。在你可以添加TRACE测试代码,看看到底是多少时间,多了解一下这个时间机制。反正我感觉利用程序来操作EXCEL和word有时候并不是很理想。