用 Word 提取 doc文档 纯文本,有时候会出问题,怎么办?
有时候会出现:“服务器正在运行中,请切换到...”的提示,然后按[切换到]按钮,就突然弹出开始菜单,然后又出现“服务器正在运行中,请切换到...”的提示,死循环。而且当Word程序正在打开的时候,调用该函数还会出问题,说模版锁定之类的。请问,能否把这段代码改改,尽量少出这种状况,或是有没有其他更好的提取doc文档 纯文本的方法?
代码如下:
Option Explicit
Public Function GetDocText(ByVal sFQFilename As String) As String
'提取Word文档的纯文本。
'INPUT-----------------------------------------------------------
'sFQFilename Word文档的全路径名
'OUTPUT----------------------------------------------------------
'Return Value 提取的纯文本
'----------------------------------------------------------------
Dim Wapp As Object, Doc As Object 'Word Application 对象、Document 对象
try: On Error GoTo catch
'{
Set Wapp = CreateObject("Word.Application") '创建Word Application 对象
Set Doc = Wapp.Documents.Open(sFQFilename) '打开文档,返回一个文档对象
GetDocText = Doc.Content.Text '提取纯文本
'}
GoTo finally
catch:
'{
GetDocText = ""
'}
finally:
'{
'如果文档对象不为空,那么说明打开了文档,关闭它,并销毁文档对象
If Not (Doc Is Nothing) Then Doc.Close: Set Doc = Nothing
'如果word application对象不为空,那么说明创建了word对象,
'退出它,并销毁对象
If Not (Wapp Is Nothing) Then Wapp.Quit: Set Wapp = Nothing
'}
End Function
问题点数:80、回复次数:6Top
1 楼qiqi5521()回复于 2005-08-03 11:16:04 得分 0
upTop
2 楼yangjiaxin_1(自己加星星)回复于 2005-08-03 11:32:36 得分 40
大哥,你的编玛怎么那么有风格呢?感觉象java的错误处理。
在word开着的时候确实会出问题。你可以提示关闭word
不要总createobject,先判断word是否打开,如果打开用getobjectTop
3 楼crycoming(瞎编)回复于 2005-08-03 11:35:11 得分 0
Function Open(FileName, [ConfirmConversions], [ReadOnly].....以只读方式打开Top
4 楼qiqi5521()回复于 2005-08-04 10:41:03 得分 0
Set Doc = Wapp.Documents.Open(sFQFilename,true,true)
不行呀。
这方面的资料怎么这么少。只能在vb对象浏览器中看到一个声明Function Open(FileName, [ConfirmConversions], [ReadOnly].....就是上面那位朋友贴的。Top
5 楼crycoming(瞎编)回复于 2005-08-04 11:02:11 得分 40
Wapp.Documents.Open FileName:="""F:\Test.doc""", ConfirmConversions:= _
False, ReadOnly:=True, AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAutoTop
6 楼wglbzsteel(大个子)回复于 2005-08-04 11:09:34 得分 0
顶Top




