Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/34: Рейтинг темы: голосов - 34, средняя оценка - 5.00
 Аватар для Atma24
6 / 6 / 4
Регистрация: 27.06.2013
Сообщений: 89

Программное создание закладок в документе Word

26.10.2015, 10:05. Показов 6662. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здравствуйте.

Подскажите пожалуйста как можно программно добавлять в документ word закладки. С ручным вводом все понятно но при большом количестве данных отчета необходимо чтоб они создавались автоматически.

Нашел на msdn что для создания закладок необходимо пользоваться элементом управления bookmark но у меня на MVS 2013 Desktop нет. Это дело в версии что ли?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.10.2015, 10:05
Ответы с готовыми решениями:

Заполнение закладок в документе Word - ограничение на число посылаемых команд?
Среди прочих других команд в одном посыле из Delphi в документ Microsoft Word'а есть последовательность команд, заполняющая таблицу: ...

Создание таблицы в документе MS Office Word
Всем привет! Такой вопрос, я изучаю создание отчетов в ворде, и по чужому примеру пытаюсь разобратся, но никак не пойму, объясняю...

Программное создание полей в Word
Всем привет. Вообщем задался вопросом, можно ли программно из лотус создать поле в документе ворд? Обычно при экспорте в ворд, уже...

8
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
26.10.2015, 17:57
Лучший ответ Сообщение было отмечено Atma24 как решение

Решение

wdDoc — это документ (надеюсь ты знаешь как его создавать), wdApp — само приложение Word. Закладка ставится в место курсора
C#
1
wdDoc.Bookmarks.Add("Имя закладки", wdApp.Selection.Range);
0
 Аватар для Atma24
6 / 6 / 4
Регистрация: 27.06.2013
Сообщений: 89
27.10.2015, 07:55  [ТС]
Спасибо
0
 Аватар для Atma24
6 / 6 / 4
Регистрация: 27.06.2013
Сообщений: 89
28.10.2015, 10:40  [ТС]
Добавляя закладки в документе получилось следующее:

C#
1
2
3
4
5
             string regionBookmark = "regionBookmark";
            for (int i = 0; i < RegionCount.Length; i++)
            {               
                oDoc.Bookmarks.Add(regionBookmark+(i+1).ToString(),oWord.Selection.Range);              
            }
При таком коде закладки создаются но на одном месте. Я так понимаю что после добавления закладки необходимо перемещать курсор на новую строку, так как все это добавление происходит в одной области range.
Подскажите пожалуйста как перескочить на новую строку ну или в лубое другое место.
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
29.10.2015, 12:04
Цитата Сообщение от Atma24 Посмотреть сообщение
как перескочить на новую строку ну или в лубое другое место.
это разные вещи. ты создаёшь закладки в пустом документе?
0
 Аватар для Atma24
6 / 6 / 4
Регистрация: 27.06.2013
Сообщений: 89
13.11.2015, 08:14  [ТС]
В пустом.
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
13.11.2015, 09:44
Не совсем понятно, что тебе нужно. Печать абзаца можно сделать так:
C#
1
2
3
oWord.Selection.InsertParagraphBefore();//Вставка абзаца перед выделением
oWord.Selection.InsertParagraphAfter();//Вставка абзаца после выделения
oWord.Selection.InsertParagraph();//Вставка абзаца вместо выделения
Для вставки закладки необязательно использовать Selection, т.е. место курсора или выделенного фрагмента.
Например, вставка закладки на пятое слово в документе:
C#
1
oDoc.Bookmarks.Add("fifthWord", oDoc.Words[5]);
0
 Аватар для Atma24
6 / 6 / 4
Регистрация: 27.06.2013
Сообщений: 89
13.11.2015, 09:52  [ТС]
Я хотел сделать следующее:

Есть запрос который получает к примеру 5 строк с регионами. И получается что в документе Word необходимо создать 5 закладок , которые будут идти так:

регион1
регион2
регион3
регион4
регион5
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
14.11.2015, 11:51
Попробуй так:
C#
1
2
3
4
5
6
for (int i = 0; i < RegionCount.Length; i++)
    {
        oDoc.Range().InsertParagraphAfter();//Вставка абзаца в конец документа
        oDoc.Paragraphs.Last.Range.Text = regionBookmark + (i + 1).ToString();//Текст последнего вставленного абзаца
        oDoc.Bookmarks.Add(regionBookmark + (i + 1).ToString(), oDoc.Paragraphs.Last.Range);//Создание закладки
    }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.11.2015, 11:51
Помогаю со студенческими работами здесь

Программное создание и форматирование таблицы в Word
Создаю из формы аксесс программно вордовский документ, в нем - таблицу (с бесцветными границами), применяю к ней форматирование - ширина...

Цикл отображающий названия закладок в документе
Добрый день! Подскажите вот такой момент. Есть документ Wорд, в нем есть закладки. Как пройтись циклом по документу и отобразить например в...

Создание макроса в Word. Нахождение и удаление элемента и ему подобных в документе
Программа выгружает документ в ворд в определенном формате, для дальнейшей работы документ требуется изменить. Так как документ большой...

Создание таблицы в документе MS Word из таблицы Excell
Приветствую! Нужна Ваша помощь! Появилась необходимость вставить таблицу word в определенное место word документа, сгенерированную из...

Форматирование закладок в Word
Здравствуйте! Подскажите, как реализовать такую задачу. Есть документ, в нем есть много повторяющихся элементов. Реализовал ввод в...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru