知识大全 用C#在Word文档中搜索文本
Posted 知
篇首语:学问不都是在书本上得来的,在事实上得的经验,也就是学问。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用C#在Word文档中搜索文本相关的知识,希望对你有一定的参考价值。
用C#在Word文档中搜索文本 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在word应用程序中搜索和替换文本是举手之劳的事情 通过word的对象模型 我们也可以使用编程方式来实现
Word的对象模型有比较详细的帮助文档 放在 Office 安装程序目录 office 是在Program Files\\Microsoft Office\\OFFICE \\ 下 文档本身是为VBA提供的 在这个目录下还可以看到所有的office应用程序的VBA帮助
打开VBAWD CHM 看到word的对象模型 根据以往的使用经验 很容易在Document对象下找到Content属性 该属性会返回一个文 档文字部分的Range对象 从这个对象中不难取到所有的文档内容 再用string的IndexOf()方法很容易达到目标
object filename= ; //要打开的文档路径 string strKey= ; //要搜索的文本 object MissingValue=Type Missing;
Word Application wp=new Word ApplicationClass(); Word Document wd=wp Documents Open(ref filename ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue);
if (wd Content Text IndexOf(strKey)>= ) MessageBox Show( 文档中包含指定的关键字! 搜索结果 MessageBoxButtons OK); else MessageBox Show( 文档中没有指定的关键字! 搜索结果 MessageBoxButtons OK);
不过 这种做法是很勉强的 对小文档来说 不存在问题 对超长超大的文档来说 这样的实现方法已经暗埋bug了 而且是程序级的bug 因为正常的测试会很难发现问题 在使用中导致程序出现什么样的结果也很难量化描述
其实 在word中已经提供了可以用作搜索的对象Find 在对象模型上也比较容易找到 对应的说明是这样的 该对象代表查找操作的执行条件 Find 对象的属性和方法与 替换 对话框中的选项一致 从模型上看 Find对象是Selection的成员 从示例代码来看似乎也是Range的成员 查找 Range的属性 果然如此 于是修改上面的代码
wd Content Find Text=strKey; if (wd Content Find Execute(ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue ref MissingValue)) MessageBox Show( 文档中包含指定的关键字! 搜索结果 MessageBoxButtons OK); else MessageBox Show( 文档中没有指定的关键字! 搜索结果 MessageBoxButtons OK);这样似乎也不是最好 因为我只要判断指定的文本是不是在文档中 而不需要知道它出现了几次 如果有多个要搜索的文本 难道每次都进行全文档搜索?假设我要 搜索的文本包含在文档中 最好的情况是在文档开头就包含我要查找的文本 最坏的情况是在文档的最后包含要查找的文本 如果每次取一部分文档进行判断 符合 条件就结束本次搜索 就可以避免每次搜索整个文档了 模型中的Paragraphs对象现在派上用场了 再修改一下代码
int i= iCount= ; Word Find wfnd;
cha138/Article/program/net/201311/15360相关参考
C#编程实现在Excel文档中搜索文本 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishixi
C#打开WORD文档内容并显示 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C#打开WORD文
C#编程实现动态生成Word文档 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 如何用C#编程实
C#操作Word文档(Office2007) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
浅析C#合并多个WORD文档的具体实现方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 今天因
知识大全 word2007文本框内文字的垂直对齐无法设置,三种模式的按钮都是灰色的。求高手指点
word2007文本框内文字的垂直对齐无法设置,三种模式的按钮都是灰色的。求高手指点!用word2007修改2003兼容的文档才会出现这个问题,如果另存为2007文档,则没有这个问题。(我试验过了)w
向word中写入内容 首先在word中设置书签如书签名为bookmarkjavascript中可以这样写 varword;word=newActiveXObject(WordApplicati
将word文档转换后有一个方形的全黑的符号只有自己写一个filter才能过滤掉把转换后的文档里面非中文的字符串过滤掉这个黑框即可如何过滤?根据byte值过滤就行了看byte值是否相等 注意一定要
在使用Word2010进行文字编辑时,下列叙述错误的是_____。A、允许同时打开多个文档B、可将正在编辑的文档另存为一个纯文本文件C、使用“打开”命令可以打开一个已存在的文档D、打印预览文档时,打印
word操作包括打开word文档创建表格合并单元格保存退出 WordOperator usingSystem; usingSystemWeb; &n