2013-05-09 56 views
0

MS word文件圖像文件替換下面查找特定的文本,並用等所示在MS Word

#A ## B##C##d ## E·

我在下面的代碼來實現在MS Word文件替換文本使用C#。

public void ReplaceWordDoc() 
    { 
     object missing = Missing.Value; 
     Document doc = Globals.ThisAddIn.Application.ActiveDocument; 

     List<ReplacerSearch> search = GetSearchList(); 

     foreach (var searchItem in search) 
     { 
      foreach (Range tmpRange in ((Document)doc).StoryRanges) 
      { 
       tmpRange.Find.ClearFormatting(); 
       tmpRange.Find.Text = searchItem.Find; 
       tmpRange.Find.Replacement.ClearFormatting(); 
       tmpRange.Find.Replacement.Text = searchItem.Replace; 
       object replaceAll = WdReplace.wdReplaceAll; 

       if (searchItem.Replace.Contains("gif")) 
       { 
        tmpRange.InlineShapes.AddPicture(searchItem.Replace, Type.Missing, Type.Missing, tmpRange); 
       } 
       else 
       { 
        tmpRange.Find.Execute(ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, 
              ref missing, ref missing, ref missing, ref replaceAll, ref missing, ref missing, ref missing, ref missing); 
       } 
      } 
     } 
    } 

    private List<ReplacerSearch> GetSearchList() 
     { 
      List<ReplacerSearch> ilst = new List<ReplacerSearch>(); 
      for (int i = 0; i <= 4; i++) 
      { 
       ReplacerSearch ObjReplacerSearch = new ReplacerSearch(); 
       if (i == 0) 
       { 
        ObjReplacerSearch.Find = "#A#"; 
        ObjReplacerSearch.Replace = "ABCD"; 
       } 
       else if (i == 1) 
       { 
        ObjReplacerSearch.Find = "#B#"; 
        ObjReplacerSearch.Replace = "EFGH"; 
       } 
       else if (i == 2) 
       { 
        ObjReplacerSearch.Find = "#C#"; 
        ObjReplacerSearch.Replace = "IJKL"; 
       } 
       else if (i == 3) 
       { 
        ObjReplacerSearch.Find = "#D#"; 
        ObjReplacerSearch.Replace = "MVC Developer"; 
       } 
       else if (i == 4) 
       { 
        ObjReplacerSearch.Find = "#E#"; 
        ObjReplacerSearch.Replace = "D:\\ajax_loader.gif"; 
       } 

       ilst.Add(ObjReplacerSearch); 
      } 
      return ilst; 
     } 

我的MS這個詞放像,

[圖片]#ABCD ## EFGH ## IJKL##MVC開發者#·E·

我需要像在地方·E·不在開始。

+0

'與string.replace( 「·E·」[圖]「);?。' – DGibbs 2013-05-09 07:42:36

+0

嗨DGibbs,感謝您對烏爾快速回復這裏[圖片]是不是對象圖像路徑 – Nirav 2013-05-09 08:09:29

+0

是的,我認爲顯然你會想要從你的圖像對象獲得圖像路徑 – DGibbs 2013-05-09 08:12:00

回答

1

我得到了我的解決方案。

public void ReplaceWordDoc() 
     { 
      object missing = Missing.Value; 
      Document doc = Globals.ThisAddIn.Application.ActiveDocument; 

      List<ReplacerSearch> search = GetSearchList(); 

      foreach (var searchItem in search) 
      { 
       foreach (Range tmpRange in ((Document)doc).StoryRanges) 
       { 
        tmpRange.Find.ClearFormatting(); 
        tmpRange.Find.Text = searchItem.Find; 
        tmpRange.Find.Replacement.ClearFormatting(); 
        tmpRange.Find.Replacement.Text = searchItem.Replace; 
        if (searchItem.Replace.Contains("gif")) 
        { 
         tmpRange.Find.Replacement.Text = ""; 
         Object end = doc.Characters.Count; 
         Range tmpRange1 = doc.Range(0, ref end); 
         Find fnd = tmpRange1.Find; 
         fnd.ClearFormatting(); 
         fnd.Text = searchItem.Find; 
         fnd.Execute(ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, 
            ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); 

         tmpRange1.InlineShapes.AddPicture(searchItem.Replace, Type.Missing, Type.Missing, Type.Missing); 
        } 
        tmpRange.Find.Execute(ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, 
            ref missing, ref missing, ref missing, WdReplace.wdReplaceAll, ref missing, ref missing, ref missing, ref missing); 
       } 
      } 
      doc.Close(ref missing, ref missing, ref missing); 
     } 





     private List<ReplacerSearch> GetSearchList() 
     { 
      List<ReplacerSearch> ilst = new List<ReplacerSearch>(); 
      for (int i = 0; i <= 4; i++) 
      { 
       ReplacerSearch ObjReplacerSearch = new ReplacerSearch(); 
       if (i == 0) 
       { 
        ObjReplacerSearch.Find = "#A#"; 
        ObjReplacerSearch.Replace = "ABCD"; 
       } 
       else if (i == 1) 
       { 
        ObjReplacerSearch.Find = "#B#"; 
        ObjReplacerSearch.Replace = "EFGH"; 
       } 
       else if (i == 2) 
       { 
        ObjReplacerSearch.Find = "#C#"; 
        ObjReplacerSearch.Replace = "IJKL"; 
       } 
       else if (i == 3) 
       { 
        ObjReplacerSearch.Find = "#D#"; 
        ObjReplacerSearch.Replace = "Developer"; 
       } 
       else if (i == 4) 
       { 
        ObjReplacerSearch.Find = "#E#"; 
        ObjReplacerSearch.Replace = "D:\\ajax_loader.gif"; 
       } 

       ilst.Add(ObjReplacerSearch); 
      } 
      return ilst; 
     }