hur.cn - 华软网

 热门搜索

有关读取word文件的方法请教

  作者:未知    来源:网络    更新时间:2019/7/30
word资料
格式:
每一行都为一个字段的数据

三行为一条记录(其中第一行的前3位文字是记录的序号),如何读取word文档到数据库存中?
里面另有一些特殊的数据是:如:第一行字段的文字数据后 第二行是图片,第三行就文字,如果措置惩罚?
------华软网友回答------
遇到大问题的时候建议把大问题分成几个小问题来问,这样可能会有结果. 
读取文字用对照简单,读取图片可能对照麻烦. 
我的建议是自己找vba编程资料参照,word的帮助文档中就有.  
另有建议你pb版中 搜索一下word 这个关头字, 你会有一大堆例子. 

你想获得直接的结果是不太可能的了,靠自己努力吧.

------华软网友回复------
这里没有读word的例子,都是打开word的例子,我现在目标是读取word里面的文本数据
------华软网友回复------
========================================================================
ActiveDocument.Tables(1).Cell(1, 1).Range.Text
表示提取当前Word的第一个表的第一个单元格的数据

========================================================================
//存入WORD报表

integer rtn, i

SETPOINTER(HourGlass!)
//st_info.TEXT='正在打开"+sPath+",请稍候......'

INTEGER il_ddehandle, result
LONG wHandle

//open XLS workbook

wHandle=HANDLE(PARENT)
OLEOBJECT ole_word
ole_word=CREATE OLEOBJECT

INTEGER iRetry=0
string strDotPath, strDocPath

strDotPath=sle_dotpath.text
strDocPath=sle_docpath.text

DO WHILE iRetry<10
iRetry ++
result = ole_word.ConnectToObject("","word.application")
IF result = 0 THEN
ole_word.documents.add(strDotPath)
ole_word.activedocument.saveAs(strDocPath)
EXIT
ELSE
wait(6)//6 seconds
END  IF
LOOP

IF iRetry>10 AND result<>0 THEN
messageBox('连接毛病','不能连接当前的 WORD 应用程序!~r~n毛病码:'+string(result), stopSign!)
RETURN -1
END IF

gSwordVersion=ole_word.application.version

SETPOINTER(HourGlass!)
st_info.TEXT='正在更新文档,请稍候......'


wHandle=HANDLE(THIS)
STRING strDocName, strOleTitle

//gSoleTitle=dw_zsblob.Object.content.ClientName 

strDocName=ole_word.activewindow.caption
strDocPath=sle_docpath.text

IF gSwordVersion<'9.0' THEN
// strOleTitle='文档在 '+replace$(strOleTitle,"'","") //WORD 97
strOleTitle=gSoletitle+" - "+strDocName
ELSE
// strOleTitle=replace$(strOleTitle,"'","") + ' 中的文档' //WORD 2000 中 TITLE: gSoleTitle 中的文档
strOleTitle=strDocName+" - "+gSoletitle
END IF

//il_ddehandle=OpenChannel("WINWORD", strOleTitle, wHandle)

il_ddehandle=OpenChannel("WINWORD", strDocPath)//, wHandle)


IF il_ddehandle<0 THEN
messageBox('连接毛病','不能连接当前的 Word 应用程序~r~n毛病码:'+string(il_ddehandle), stopSign!)
RETURN -1
END IF

integer ifieldCount
string sVals[], sFields[]

iFieldCount=integer( dw_1.Object.DataWindow.Column.Count )

string coltype
FOR i=1 TO ifieldCount
sFields[i]=dw_1.describe("#"+string(i)+".name")

// sVals[i]=dw_1.getItemString( dw_1.getRow(), sFields[i])
sVals[i]=string( dw_1.Object.Data[dw_1.getRow(), i], dw_1.getFormat(i) )
IF NOT ISNULL(sVals[i]) THEN 
IF LEN(sVals[i])>1 THEN sVals[i]=TRIM(sVals[i])//' ' EXCLUDED
IF LEN(TRIM(sVals[i]))=0 THEN sVals[i]=SPACE(10)
setRemote( sFields[i], sVals[i],il_ddehandle )
END IF

st_info.TEXT='正在更新文档,请稍候......: ' +string( i*100/ifieldCount) + "%"

END FOR

CloseChannel(il_ddehandle)//, wHandle)
IF cbx_close.checked THEN
ole_word.activedocument.close(true)//SAVED
END IF
destroy ole_word

st_info.TEXT='文档检查完毕!'
SETPOINTER(Arrow!)

     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。