c# word替换(Find.Excute方法)操作 去除空行方法

47 篇文章 0 订阅
16 篇文章 0 订阅

http://blog.csdn.net/wwei466/article/details/6578120


现在的项目有个功能是要替换掉word文档中的空格,搜索了半天得到一个方法是在word内全局替换^p^p为^p,这样就可以消除一遍空格,当然如果有连续的空格时,需要连续替换几次就可以了。

现在有了方法就好多了,那么看c#word操作代码如何写了。

使用c# 进行word操作替换操作时需要使用com方法,Find.Excute,这个也好说,搜索一下就可以了。

网上代码如下:

[c-sharp] view plain copy
  1. Word.Find myFind = mySelection.Find;  
  2.   
  3. Console.WriteLine(myFind.Text);  
  4. object findText = "alow";  
  5. object replaceText ="allow";  
  6.   
  7. // Find "alow" and replace with "allow"  
  8. try  
  9. {  
  10.    myFind.Execute(ref findText,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing,  
  11. ref missing,ref missing,ref replaceText,ref missing,ref missing,ref missing,ref missing,ref missing);  
  12.   
  13. }  

但是,试了很久就是不成功。总是报错,程序一到这里就卡住了。

差了半天好像是因为word重新使用了Excel95用过的GUIDs,如果你的word 动态链接库 注册在Excel95 动态链接库之前,你就会出现这个问题。原文是:

Word reuses Globally Unique Identifiers (GUIDs) that Microsoft Excel 95 originally used. If the Excel 95 type library is registered after the Word type library, you will experience this problem.

这就话我不太理解,怎么跟Excel95的动态链接库联系上了。。。现在都2011了!!

不过这篇文章是06年写的。权当是微软使用了以前的动态链接库吧(微软的软件架构也这么烂。。。O(∩_∩)O~)

 

好了,解决的方式是 使用反射调去com方法。代码如下

 

[c-sharp] view plain copy
  1. object myFind = mySelection.Find;  
  2.   
  3. Console.WriteLine(myFind.GetType().InvokeMember("Text", BindingFlags.GetProperty, null, myFind, null));  
  4. object findText = "alow";  
  5. object replaceText ="allow";  
  6.   
  7. // Find "alow" and replace with "allow"  
  8. try  
  9. {  
  10.    object[] Parameters;  
  11.    Parameters = new object[15];  
  12.    Parameters[0] = findText;  
  13.    Parameters[1] = missing;  
  14.    Parameters[2] = missing;  
  15.    Parameters[3] = missing;  
  16.    Parameters[4] = missing;  
  17.    Parameters[5] = missing;  
  18.    Parameters[6] = missing;  
  19.    Parameters[7] = missing;  
  20.    Parameters[8] = missing;  
  21.    Parameters[9] = replaceText;  
  22.    Parameters[10] = missing;  
  23.    Parameters[11] = missing;  
  24.    Parameters[12] = missing;  
  25.    Parameters[13] = missing;  
  26.    Parameters[14] = missing;  
  27.   
  28.    myFind.GetType().InvokeMember("Execute", BindingFlags.InvokeMethod, null, myFind, Parameters );  
  29. }  

 

结果 程序Ok。。。写在这里标记一下。

另外:好像中文的就没几个问这个问题的。不知道是我系统不行,碰到了这个问题,还是大家都没遇到过。。。

总之,我贡献一个中文的解决方法吧。

 

 

原文地址是:http://support.microsoft.com/default.aspx?scid=kb;en-us;313104



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: word.Selection.Find.Execute函数有多个参数,包括FindText、MatchCase、MatchWholeWord、MatchWildcards、MatchSoundsLike、MatchAllWordForms、Forward、Wrap、Format、ReplaceWith、Replace等。这些参数可以用来指定查找和替换的条件和方式。 ### 回答2: word.Selection.Find.Execute函数是在Word文档中进行查找和替换的功能函数。该函数有多个参数,以下是对其参数进行解释: 1. FindText: 被查找的文本字符串。可以是单词、短语或特定格式的文本。 2. ReplaceWith: 替换文本字符串。可选参数,用于将查找到的文本替换成指定的文本。 3. Replace: 是否替换查找到的文本。可选参数,默认为True。如果要进行查找而非替换操作,可以将该参数设置为False。 4. MatchCase: 区分大小写。可选参数,默认为False。如果需要按照大小写进行查找,可以将该参数设置为True。 5. MatchWholeWord: 匹配整个单词。可选参数,默认为False。如果需要仅匹配整个单词,可以将该参数设置为True。 6. MatchWildcards: 使用通配符进行匹配。可选参数,默认为False。如果需要使用通配符进行匹配,可以将该参数设置为True。 7. MatchSoundsLike: 匹配类似音的单词。可选参数,默认为False。如果需要匹配类似音的单词,可以将该参数设置为True。 8. MatchAllWordForms: 匹配所有形式的单词。可选参数,默认为False。如果需要匹配所有形式的单词,可以将该参数设置为True。 通过传递不同的参数,可以实现在Word文档中进行不同类型的查找和替换操作。例如,可以按照指定的文本进行查找并替换,也可以根据不同的匹配规则进行查找,满足不同的需求。 ### 回答3: word.Selection.Find.Execute函数是微软Word中的一个方法,用于在当前选择范围内执行查找操作。 该函数有多个参数可以调整查找的设置,以下是一些常用参数: 1. FindText: 查找的文本内容,可以是字符串或者是特定的通配符表达式。 2. ReplaceWith: 替换的文本内容,可选参数。如果需要替换文本,可以使用该参数。 3. MatchCase: 是否区分大小写,默认为False,即不区分大小写。 4. MatchWholeWord: 是否整词匹配,默认为False,即可以匹配单词的一部分。 5. MatchWildcards: 是否使用通配符匹配,默认为False。如果启用该参数,FindText可以使用通配符表达式进行模糊匹配。 6. MatchSoundsLike: 是否与近音词匹配,默认为False。如果启用该参数,查找结果可能会包括与FindText近音的单词。 7. MatchAllWordForms: 是否匹配所有单词形式,默认为False。如果启用该参数,查找结果可能会包括FindText的各种变形形式。 8. Forward: 查找的方向,默认为True,即向下查找。如果设置为False,即向上查找。 9. Wrap: 是否在搜索到文档的末尾时继续搜索,默认为wdFindContinue,即继续搜索。如果设置为wdFindAsk,即提示用户是否继续搜索。 10. Format: 是否仅查找特定格式的文本,默认为False。如果设置为True,可以使用其他参数来指定具体的格式。 通过调整这些参数,可以实现在Word中进行更灵活精确的查找操作

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值