Member 11643680 Ответов: 1

Как заменить текст внутри текстового поля MS-word?


Я написал программу Windows Forms, используя C#. Он содержит текстовые поля и сетку данных.

Я хочу экспортировать данные в файл Word, чтобы использовать шаблон. Я добавил библиотеку Microsoft Word в свой код.

Кроме того, я создал текстовые поля "фигуры" внутри файла Word и вставил в них текст, который будет найден из моей программы c#

На данный момент все кажется нормальным, но я застрял на стороне C#, я могу заменить обычный текст, но не текст внутри текстовых полей "внутри файла word"

Что я уже пробовал:

And here is my code:
<pre lang="c#"><pre>private void FindAndReplace(Word.Application wordapp, object ToFindText, object replaceWithText)

        {
            object matchCase = true;
            object matchWholeWord = true;
            object matchWildCards = false;
            object matchSoundLike = false;
            object matchAllforms = false;
            object forward = true;
            object format = false;
            object matchKashida = false;
            object matchDiactitics = false;
            object matchAlefHamza = false;
            object matchControl = false;
            object matchread_only = false;
            object visible = true;
            object replace = 2;
            object wrap = 1;

            wordapp.Selection.Find.Execute(ref ToFindText,
                ref matchCase, ref matchWholeWord,
                ref matchWildCards, ref matchSoundLike,
                ref matchAllforms, ref forward,
                ref wrap, ref format, ref replaceWithText,
                ref replace, ref matchKashida,
                ref matchDiactitics, ref matchAlefHamza,
                ref matchControl);

        }


        private void CreateWordDocument(object filename, object SaveAs)
        {
            Word.Application wordApp = new Word.Application();
            object missing = Missing.Value;
            Word.Document myWordDoc = null;

            if (File.Exists((string)filename))

            {
                object readOnly = false;
                object isVisible = false;
                wordApp.Visible = false;

                myWordDoc = wordApp.Documents.Open(ref filename, ref missing, ref readOnly,
                    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);

                myWordDoc.Activate();

                //find and replave
                this.FindAndReplace(wordApp, "<date1>", textBox2.Text);
                this.FindAndReplace(wordApp, "<date2>", textBox3.Text);

            }

            else
            {
                MessageBox.Show("File not found!");
            }

            //Svae as
            myWordDoc.SaveAs2(ref SaveAs, 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);


            myWordDoc.Close();
            wordApp.Quit();
            MessageBox.Show("File Created!");


         }

1 Ответов

Рейтинг:
2

Graeme_Grant

Самый простой способ, который я нашел, чтобы выяснить код,-это использовать встроенный макрос-рекордер, поскольку он будет писать код для вас! ;)

Вот видео, которое должно помочь: Введение в макросы Word - учебник о том, как редактировать макрос Word - YouTube[^]