Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 04.03.2018
Сообщений: 1
1

Работа с Microsoft.Office.Interop.Word и поиск в Word документе

27.01.2020, 14:31. Показов 2871. Ответов 0

Author24 — интернет-сервис помощи студентам
Здравствуйте, при создании программы для работы со справочником столкнулся с проблемой. Нужно из существующего сформированного документа найти все ФИО, которые указаны в RichTextBox и внести их в виде таблицы с номерами страниц в конце документа. С созданием таблицы, поиском первого совпадения и внесением проблем нет. Проблема возникает тогда, когда появляются полные тезки, программа вносит только одного человека. Как можно это исправить? Код привожу ниже.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
                button1.Enabled = false;
                string savename = openFileDialog1.FileName;
                objWord = new Word.Application
                {
                    Visible = true
                };
                objDoc = objWord.Documents.Open(savename);
                objWord.Selection.HomeKey(ref unit, ref extend);
                string[] array = null;
                string name = "";
                object rEnd = objDoc.Content.End;
                int inform = int.MinValue;
                array = richTextBox1.Text.Split('\n');
                objWord.Selection.EndKey(ref unit, ref extend); //создание заголовка для таблицы с ФИО
                objWord.Selection.InsertBreak(Word.WdBreakType.wdPageBreak);
                objWord.Selection.Text = "Алфавитный указатель".ToUpper();
                objWord.Selection.Font.Bold = 1;
                objWord.Selection.Font.Size = 10;
                objWord.Selection.Font.Name = "Arial";
                objWord.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
                Word.Range wrdRng = objDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
                objTable = objDoc.Tables.Add(wrdRng, 1, 2, ref oMissing, ref oMissing); //создание и форматирование таблицы
                int count = objDoc.Tables.Count;
                objDoc.Tables[count].Cell(1, 1).SetWidth(215, Word.WdRulerStyle.wdAdjustFirstColumn);
                objDoc.Tables[count].Range.Font.Bold = 0;
                objDoc.Tables[count].Range.Font.Size = 9;
                objDoc.Tables[count].Range.Font.Name = "Arial";
                objDoc.Tables[count].Range.ParagraphFormat.SpaceAfter = 0;
                objDoc.Tables[count].Cell(1, 1).Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft;
                objDoc.Tables[count].Cell(1, 2).Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;
                objWord.Selection.HomeKey(ref unit, ref extend);
 
                for (int i = 0; i < richTextBox1.Lines.Length; i++) //внесение записей в таблицу
                {
                    name = objWord.Selection.Find.Text = array[i];
                    objWord.Selection.Find.Execute();
                    inform = objWord.Selection.get_Information(Word.WdInformation.wdActiveEndAdjustedPageNumber);
                    objWord.Selection.Collapse();
                    objDoc.Tables[count].Cell(i + 1, 1).Range.Text = name;
                    objDoc.Tables[count].Cell(i + 1, 2).Range.Text = inform.ToString();
                    objTable.Rows.Add();
                    objWord.Selection.HomeKey(ref unit, ref extend);
                }
                objDoc.SaveAs2(savename as object);
                button1.Enabled = true;
                objWord.Visible = true;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.01.2020, 14:31
Ответы с готовыми решениями:

Найти и заменить слова в документе (doc) без Microsoft.Office.Interop.Word
Добрый день! Существует ли способ с помощью оного я мог бы найти и заменить слова в файле (doc)...

Microsoft.Office.Interop.Word поиск текста
Здравствуйте. Есть документ Word. В нем есть текст: Категория возрастная: дети Пол: любой...

Microsoft.Office.Interop.Word поиск и возвращение значений
Доброе время суток. Занят разработкой парсера между экселем и вордом. Автоматизация работы в...

Альтернатива Microsoft.Office.Interop.Word
Если альтернатива пространства Microsoft.Office.Interop.Word?Мне нужно выложить программу на сервер...

0
27.01.2020, 14:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.01.2020, 14:31
Помогаю со студенческими работами здесь

Microsoft.Office.Interop.Word сохранение файла
Требуется сохранение файла. Как это сделать? try { _document =...

В visual studio не видно Microsoft.Office.Interop.Word
у меня в visual studio не видно Microsoft.Office.Interop.Word В чём проблема?

Microsoft.Office.Interop.Word работает только на одном ПК
Вот не могу понять в чем проблема, работал дома надо проектом, который импортирует данные в Word и...

Как установить компонент microsoft.office.interop.word?
Скачал компонент microsoft.office.interop.word Как его установить?

Невозможно привести COM-объект типа Microsoft.Office.Interop.Word
Здравствуйте! Есть проблема из частых: &quot;вчера работало, сегодня нет&quot;. Моя программа сохраняла отчет...

Некорректная работа с Microsoft.office.interop.excel.dll на других ПК
Всем добра! Понимаю, тема уже избита и много раз обсуждалась, но все же хотелось уточнить раз и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru