如何读取Word文档的内容

在他乡奋斗 2008-12-05 05:04:05
在vc++6.0中如果编写程序读取Word文档中的内容。其代码应该怎么写?
请各位高手指点。
...全文
86 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaozhu88 2008-12-06
  • 打赏
  • 举报
回复
用FINDWINDOW得到窗口的句柄。
再得到编辑框的句柄。最后用SendMessage函数向它发送WM_GETTEXT消息。
利用SendMessage()函数,函数原型如下
SendMessage(
(HWND) hWndControl, // handle to destination control
(UINT) WM_GETTEXT, // message ID
(WPARAM) wParam, // = (WPARAM) () wParam;
(LPARAM) lParam // = (LPARAM) () lParam; );

hWndControl是文本框的句柄
WM_GETTEXT是消息ID,表示要从hWndControl所指文本框中获取文本
wParam表示要复制多少的字
lParam是一个接收文字的字符缓冲区
jyh_baoding 2008-12-06
  • 打赏
  • 举报
回复
二楼讲的有道理,可以试试
wmpkumse 2008-12-05
  • 打赏
  • 举报
回复
如果你安装的不是Office精简版的,那么在 \Microsoft Office\OFFICE11\2052的目录下有以VBA开头的chm文件
你可以看看,是中文的~~~
在他乡奋斗 2008-12-05
  • 打赏
  • 举报
回复
能不能给点详细的解释啊。
菜牛 2008-12-05
  • 打赏
  • 举报
回复
搜索Office自动化。
oyljerry 2008-12-05
  • 打赏
  • 举报
回复
_Application app;
Documents docs;
_Document doc;
Tables WordTables;
Table WordTable;
Cell WordCell;
Range WordRange;
Columns WordCols;
Rows WordRows;
if(!app.CreateDispatch("Word.Application"))
{
MessageBox("创建Word服务失败!",_T("提示"),MB_ICONERROR);
return;
}

docs.AttachDispatch(app.GetDocuments());
app.SetVisible(true);


//打开文件
IDispatch *dispatch=docs.Open(&_variant_t(_T("d:\\test.doc")),&vtMissing,&vtMissing,&vtMissing,
&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,&vtMissing,
&vtMissing,&vtMissing,&vtMissing,&vtMissing);
if(dispatch)
{
doc.AttachDispatch(dispatch);
}
else
{//出错了
CString szErr="";
szErr.Format("打开文件出错,请查看文件是否存在!");
::AfxMessageBox(szErr);
//退出程序,释放对象
app.Quit(&vtMissing,&vtMissing,&vtMissing);
docs.ReleaseDispatch();
app.ReleaseDispatch();
return;
}

dispatch=doc.GetTables();
if(dispatch)
{
WordTables.AttachDispatch(dispatch);
}
else
{//出错了
CString szErr="";
szErr.Format("取得表格集合出错!");
::AfxMessageBox(szErr);
//退出程序,释放对象
app.Quit(&vtMissing,&vtMissing,&vtMissing);
docs.ReleaseDispatch();
app.ReleaseDispatch();
doc.ReleaseDispatch();
return;
}

int nTableCount=WordTables.GetCount();
if(nTableCount>0)
{
for(int i=1;i<=nTableCount;i++)
{
WordTable.AttachDispatch(WordTables.Item(i));
WordCols.AttachDispatch(WordTable.GetColumns());
WordRows.AttachDispatch(WordTable.GetRows());
int nCols=WordCols.GetCount();
int nRows=WordRows.GetCount();
for(int j=1;j<=nRows;j++)
{
for(int k=1;k<=nCols;k++)
{
dispatch=WordTable.Cell(j,k);
WordRange.AttachDispatch(dispatch);
CString szText=WordRange.GetText();
this->MessageBox(szText);
}
}
}
}

app.Quit(&vtMissing,&vtMissing,&vtMissing);
doc.ReleaseDispatch();
docs.ReleaseDispatch();
app.ReleaseDispatch();
feng1976 2008-12-05
  • 打赏
  • 举报
回复
看看VBA For Word;
需要了解些Word的文档接口

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧