VC++6.0 读取word文档中表格的内容

zhuweiping2003 2013-05-07 03:52:53
麻烦网友提供示例 或者 示例链接

主要功能:
选择一个word文档,然后读取其表格中的内容,表格一般是n*3的。
...全文
386 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
老张童 2014-08-24
  • 打赏
  • 举报
回复
不规则表格怎么读取,比如有合并过的单元格。
pla12121212 2014-03-18
  • 打赏
  • 举报
回复
_variant_t未定义,,vtMissing未定义??怎么回事啊,关注中。。。。
pla12121212 2014-03-18
  • 打赏
  • 举报
回复
_variant_t未定义,,vtMissing未定义??
zhanglincheng 2013-11-11
  • 打赏
  • 举报
回复
为什么我提示Cell未定义
zhuweiping2003 2013-05-09
  • 打赏
  • 举报
回复
可以 直接给分
青松2 2013-05-07
  • 打赏
  • 举报
回复
_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();
青松2 2013-05-07
  • 打赏
  • 举报
回复
VC读取Word表格字符串 [code=c_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();][/code]

16,548

社区成员

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

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

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