高分求助!!如何用OLE方法从WORD中的表格获得字符串

wendyina80 2013-06-17 05:14:28
有一份有文字和表格内容的WORD档,其中某些表格有特殊文字表头,如ABC::,这种特殊表格都只有五列,行数不限。
想用OLE的方法从WORD档中检索所有的特殊表格,并依次拷贝出每一个表格中每一栏的内容。
请问要怎么实现呢?最好可以给出例子。
谢谢大家~!
...全文
298 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wendyina80 2013-06-19
  • 打赏
  • 举报
回复
谢谢妖哥!!膜拜OLE强人~
在这里给大家Show一下妖哥帮忙的程序(我有小小改动),给有相似需求的同学参考:
我要处理的表格是这样的:

WORD文档里面有很多,格式都相同,第一行是一个合并单元格,后面是6栏,分别对应不同的项目。
   Variant vWordApp;

try
{
vWordApp = CreateOleObject("Word.Application");
}
catch (...)
{
return;
}

vWordApp.OlePropertySet("Visible", true);

String strDocFile("D:\\WORDExample.doc");
vWordApp.OlePropertyGet("Documents").OleFunction("Open", WideString(strDocFile));

Variant vDoc = vWordApp.OlePropertyGet("ActiveDocument");

int nTableCount = vDoc.OleFunction("Range").OlePropertyGet("Tables").OlePropertyGet("Count");

Variant vTable, vCell;
int nRowCount, nColCount;
String strValue;

for(int i = 0; i < nTableCount; i++)
{
vTable = vDoc.OleFunction("Range").OlePropertyGet("Tables").OleFunction("Item", i + 1);

nColCount = vTable.OlePropertyGet("Columns").OlePropertyGet("Count");
nRowCount = vTable.OlePropertyGet("Rows").OlePropertyGet("Count");

for(int j = 0; j < nRowCount; j++)
{
for(int k = 0; k < nColCount; k++)
{
try
{
vCell = vTable.OleFunction("Cell", j + 1, k + 1);
strValue = vCell.OlePropertyGet("Range");

//存储处理strValue;

if(j == 0)
{
break; // 合并单元格Col+1后取Range会有错。
}
}
catch (...)
{
break;
}
}
}
}


看似简单的程序,可是要找到正确的方法真是好难啊。妖哥有没有什么技巧可以教授一下呢?呵呵~
wendyina80 2013-06-18
  • 打赏
  • 举报
回复
好的,谢谢~!
ccrun.com 2013-06-18
  • 打赏
  • 举报
回复
晚一些再回复你,请耐心等候。
wendyina80 2013-06-18
  • 打赏
  • 举报
回复
表格的格式倒是固定的。每个表格都有一个表头占一行,然后下面是5栏,表格的行数不定,最多9行。 关键是不知道怎么检索和读取啊。。。。
wendyina80 2013-06-18
  • 打赏
  • 举报
回复
哈,妖哥出现啦~ 我刚刚发了一份WORD档到你的信箱里。 我是想把WORD文档中所有的表格中每一栏的内容都读取出来,存储到一个String 数组里面再进行处理。我有找过例子,但都是写入居多,没找到读取的例子。麻烦你教我怎么检索所有的Table个数,并且检索每一单元栏,读出每个Cell的内容吧。 多谢多谢~:)
ccrun.com 2013-06-18
  • 打赏
  • 举报
回复
邮件已回复,遍历指定Word文档中的表格,行和列。
ccrun.com 2013-06-17
  • 打赏
  • 举报
回复
楼主让给出例子,你倒是给出一个Word文档的例子咯,发到我信箱。cbfans at 163 dot com
缘中人 2013-06-17
  • 打赏
  • 举报
回复
呼叫妖哥
Richardw 2013-06-17
  • 打赏
  • 举报
回复
如果你的表格格式次次是固定不变的,可多实验几次做出来

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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