ole 查找 word文档中的指定字符

tanfire2003 2009-05-05 06:01:24
如何 查找定位 word文档中的指定字符,如何读取word 文档 中 指定表格中的内容
ole 能解决么?
...全文
359 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2009-05-06
  • 打赏
  • 举报
回复
以下是操作WORD中表格的一些零散的代码,仅供参考:

选中Word文档中第一个表格:
Variant vTable = vWordApp.OlePropertyGet("ActiveDocument").
OleFunction("Range").
OlePropertyGet("Tables").
OleFunction("Item", 1);

插入一个1*1的表格:
vWordApp.OlePropertyGet("ActiveDocument").OlePropertyGet("Tables")
.OleProcedure("Add",
vWordApp.OlePropertyGet("Selection").OlePropertyGet("Range"),
1, // NumRows
1, // NumColumns
1, // DefaultTableBehavior:=wdWord9TableBehavior
0); // AutoFitBehavior:=wdAutoFitFixed

操作WORD中的表格:
插入一个10*10的表格,保存退出。用程序打开这个Word文档,当程序执行以后将从第2行,第3列开始,合并一个3*3的单元格。
#define wdLine 5
#define wdCharacter 1
#define wdExtend 1
Variant select = WordApp.OlePropertyGet("Selection");
// 移动到第3列
select.OleFunction("MoveRight", wdCharacter, 2);
// 移动到第2行,注意这里填1
select.OleFunction("MoveDown", wdLine, 1);
// 向右选择3例
select.OleFunction("MoveRight", wdCharacter, 3, wdExtend);
// 向下选择3行,注意这里填2
select.OleFunction("MoveDown", wdLine, 2, wdExtend);
// 执行合并
select.OlePropertyGet("Cells").OleProcedure("Merge");
ccrun.com 2009-05-06
  • 打赏
  • 举报
回复
OLE专业户来也!!!
以下代码是打开一个WORD文档,然后查找指定的文本"ccrun"并定位到找到的地方:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
String strDocName = "C:\\ccrun\\123.doc";
Variant vWordApp, vDoc;
try
{
vWordApp = Variant::CreateObject("Word.Application");
}
catch(...)
{
MessageBox(Handle, "启动Word出错!",
Application->Title.c_str(), MB_OK | MB_ICONERROR);
vWordApp = Unassigned;
return;
}

vWordApp.OlePropertySet("Visible", true);

vWordApp.OlePropertyGet("Documents").
OleFunction("Open", strDocName.c_str());

Variant vFind = vWordApp.OlePropertyGet("Selection").OlePropertyGet("Find");

vFind.OleFunction("ClearFormatting");

vFind.OlePropertySet("Text", "ccrun"); // 要查找的文本
vFind.OlePropertyGet("Replacement").OlePropertySet("Text", "");
vFind.OlePropertySet("Forward", true);
vFind.OlePropertySet("Wrap", 1); // wdFindContinue
vFind.OlePropertySet("Format", false);
vFind.OlePropertySet("MatchCase", false);
vFind.OlePropertySet("MatchWholeWord", false);
vFind.OlePropertySet("MatchByte", true);
vFind.OlePropertySet("MatchWildcards", false);
vFind.OlePropertySet("MatchSoundsLike", false);
vFind.OlePropertySet("MatchAllWordForms", false);

vFind.OleFunction("Execute");

// 自己添加后续代码
}

703

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder ActiveX/COM/DCOM
社区管理员
  • ActiveX/COM/DCOM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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