C#替换Word文本框中的内容(不使用Bookmark)

主要参考StoryRanges,NextStoryRange,WdStoryType,Range这几个类。

Replace text in Word textbox objects using VSTO and C#

01/// <summary>
02/// 查找并替换文本
03/// </summary>
04/// <param name="wordApp"></param>
05/// <param name="oldStr"></param>
06/// <param name="newStr"></param>
07public void SearchReplace(string oldStr, string newStr)
08
09    #region 文字区域
10    object replaceAll = WdReplace.wdReplaceAll;
11  
12    wordApp.Selection.Find.ClearFormatting();
13    wordApp.Selection.Find.Text = oldStr;
14  
15    wordApp.Selection.Find.Replacement.ClearFormatting();
16    wordApp.Selection.Find.Replacement.Text = newStr;
17  
18    wordApp.Selection.Find.Execute(
19        ref missing, ref missing, ref missing, ref missing, ref missing,
20        ref missing, ref missing, ref missing, ref missing, ref missing,
21        ref replaceAll, ref missing, ref missing, ref missing, ref missing);
22    #endregion
23  
24    #region 文本框
25    StoryRanges sr = wordDoc.StoryRanges;
26    foreach (Range r in sr)
27    
28        Range r1 = r;
29        if (WdStoryType.wdTextFrameStory == r.StoryType)
30        
31            do
32            
33                r1.Find.ClearFormatting();
34                r1.Find.Text = oldStr;
35  
36                r1.Find.Replacement.ClearFormatting();
37                r1.Find.Replacement.Text = newStr;
38  
39                r1.Find.Execute(
40                    ref missing, ref missing, ref missing, ref missing, ref missing,
41                    ref missing, ref missing, ref missing, ref missing, ref missing,
42                    ref replaceAll, ref missing, ref missing, ref missing, ref missing);
43  
44                r1 = r1.NextStoryRange;
45            while (r1 != null);
46        
47    
48    #endregion
49}

 

posted @ 2014-06-14 23:09  zzg168  阅读(474)  评论(0)    收藏  举报