替换Word Interop 16中的文本

问题描述 投票:1回答:1

https:/docs.microsoft.comen-usvisualstudiovstohow-programmatically-search-for-and-replace-text-in-document?view=vs-2019。

微软没有在文档中给出完整的代码。但我的代码尝试下面的文字没有被替换。有什么问题,如何使它保存被替换的内容到文件命名为 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个回答
0
投票

我想你有一个问题,缺少定义,我已经添加了方法来保存。

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;
    }

  }
}
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.