【问题标题】:Replace text in Word Interop 16替换 Word Interop 16 中的文本
【发布时间】:2020-03-28 20:06:58
【问题描述】:

https://docs.microsoft.com/en-us/visualstudio/vsto/how-to-programmatically-search-for-and-replace-text-in-documents?view=vs-2019

Microsoft 不会在文档中提供完整代码。但是有了这个我的代码尝试下面的文本没有被替换。出了什么问题以及如何将替换的内容保存到名为 Word2.docx 的文件中?

using Microsoft.Office.Interop.Word;

namespace ConsoleApp1
{
    class Program
    {


        static void Main(string[] args)
        {
            SearchReplace();
        }

        private static object missing; // <- Is this correct ?

        private static void SearchReplace()
        {
            Application application = new Application();
            application.Documents.Add("C:\\Users\\test\\Desktop\\word.docx");

            Microsoft.Office.Interop.Word.Find findObject = application.Selection.Find;
            findObject.ClearFormatting();
            findObject.Text = "find me";
            findObject.Replacement.ClearFormatting();
            findObject.Replacement.Text = "Found";

            object replaceAll = Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll;
            findObject.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);

            application.Documents.Save();
        }

    }
}

【问题讨论】:

    标签: c# office-interop word-interop


    【解决方案1】:

    我认为您有缺少定义的问题,我已经添加了保存方法:

    namespace ConsoleApp1
    {
        class Program
        {
    
          static void Main(string[] args)
          {
            SearchReplace();
          }
    
    
        private static void SearchReplace()
        {
            object missing = System.Reflection.Missing.Value;
    
            Application application = new Application();
            Microsoft.Office.Interop.Word.Document document = application.Documents.Add("C:\\Users\\test\\Desktop\\word.docx");
    
            Microsoft.Office.Interop.Word.Find findObject = application.Selection.Find;
            findObject.ClearFormatting();
            findObject.Text = "find me";
            findObject.Replacement.ClearFormatting();
            findObject.Replacement.Text = "Found";
    
            object replaceAll = Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll;
            findObject.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);
    
            object filename = "C:\\savefile.docx";
            document.SaveAs2(ref filename);;
    
            document.Close(ref missing, ref missing, ref missing);
            document = null;
            application.Quit(ref missing, ref missing, ref missing);
            application = null;
        }
    
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 2018-08-30
      • 1970-01-01
      • 2020-08-27
      • 2017-11-17
      • 2019-12-12
      • 1970-01-01
      相关资源
      最近更新 更多