乔山办公网我们一直在努力
您的位置:乔山办公网 > word文档 > <em>vc</em>++,本人新手,请高手帮忙解决,急-vc 读取 word,vc读word表

<em>vc</em>++,本人新手,请高手帮忙解决,急-vc 读取 word,vc读word表

作者:乔山办公网日期:

返回目录:word文档


word不是文本文件,用StreamReader读取不了。
在你的工程内引入Excel.dll,Office.dll,VBIDE.dll,
然后用Word.Application、Word.Document等接口读取。

参见:http:///lenovo_tiger_love/archive/2010/02/05/1664260.html

在ASSERT_VALID(pDoc);这句下面加上zhidao以下三句,即可实现你的要求!
pDC->SetTextColor(RGB(255,0,0));
pDC->SetBkColor(RGB(0,255,255));
pDC->TextOut(0,0,"Hello World!");
vc6测试成功,写的有点乱你自己好好看看吧.

_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("取得7a64e78988e69d83331表格集合出错!");
::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();

vc6测试成功,写的有点乱你自己好好看看吧.

_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);
//退出程序,释放对象e799bee5baa6e4b893e5b19e365
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();

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网