40 / 35 / 9
Регистрация: 01.01.2014
Сообщений: 202
1
.NET 2.x

Создание многостраничного документа Word на основе шаблона

26.01.2018, 17:33. Показов 2779. Ответов 8

Author24 — интернет-сервис помощи студентам
Доброго времени суток Уважаемые форумчане. С word работаю достаточно давно и проблем никогда не было, все задуманное, иногда с бубном, но срасталось. Возникла необходимость (отец попросил помочь) создания документа на основе шаблона. Задача проше некуда сперва я подумал, но не тут то было... Имеется шаблон с закладками и выборка из БД (~500-15000 записей). Железо старое и немощное, поэтому вариант поштучного создания файлов (с возможность последующего объединения) и последующая их печать даже не рассматривается, да и не красиво как-то это выглядит. Гугл мало чем помог, все как партизаны молчат о своих достижениях. Нашел только один пример, да и то не рабочий до конца (пример адаптирован под свои нужды) :
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub btnAction_click()
        Dim _word As Object = CreateObject("word.Application")
        Dim _template_document As Object = _word.Documents.Add(Application.StartupPath & "\template.dot")
        
        _word.Selection.WholeStory()
        _word.Selection.Copy()
 
        For i As Integer = 1 To 5
            _word.Selection.Paste()
            _word.Selection.InsertBreak()
            _template_document.Bookmarks("fio").Range.Text = "Test_FIO-" & i
            _template_document.Bookmarks("address").Range.Text = "Test_ADDRESS-" & i
        Next
        _word.Visible = True
    End Sub
Текст копируется и вставляется, но копируется без закладок. Получается первая страница с закладками и весь текст в нее вставляется, а остальные станицы - голый текст из шаблона.
Люди добрые, помогите пожалуйста дельным советом, заранее всем благодарен за любую полезную информацию. Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2018, 17:33
Ответы с готовыми решениями:

Создание многостраничного документа Word для массовой печати
Добрый день, уважаемые форумчане. Задача: есть шаблон Word'а, в котором используются поля...

Создание файлов Word на основе шаблона и обьединение их в один файл макросом из Excel
Макрос в Excel-е создает множество файлов Word на основе шаблона (больше 100), которые в дальнейшем...

Перенос данных из Excel в Word (на основе Word шаблона)
Пожалуйста помогите, приведите какой-то пример как организовать этот процесс нужно из...

конвертация html-документа в doc, на основе шаблона
Здраствуйте, товарищи!! Такая задача: Некая программа генерирует отчеты в html формате, причем...

8
1589 / 662 / 225
Регистрация: 09.06.2011
Сообщений: 1,334
26.01.2018, 19:33 2
1. Если все это нужно только для печати, то меняйте значения закладок, отправляйте на печать и так для каждой записи - 15 т.листов в ворде не такой уж легкий файл ...

2. Если все же оочень хочется создавать 100500 листов: удаляйте перед вставкой (paste) все закладки или во всех закладках шаблона должен находиться текст.
... будет чуть шустрее, если
- работать с диаппазонами (range) - не используйте selection
- для первого абзаца в шаблоне установите "С новой страницы" - не нужно будет устанавливать разрыв страницы после каждой вставки
1
40 / 35 / 9
Регистрация: 01.01.2014
Сообщений: 202
27.01.2018, 03:15  [ТС] 3
Страниц действительно много, но они полупустые-это приглашения, так что файл должен получится не такой уж и тяжелый. Я так и не нашел способа копировать кусок текста с закладками... Насколько мне видится алгоритм работы:
1. Копируем в буфер кусок текста с закладками.
2. Вносим текст в закладки.
3. Удаляем закладки.
4. вставляем текст из буфера и так по кругу (кроме копирования в буфер).
Может кто-нибудь подскажет другой вариант и решение?
0
1589 / 662 / 225
Регистрация: 09.06.2011
Сообщений: 1,334
27.01.2018, 09:34 4
Так может VB.Net и не нужен, а использовать слияние в ворде ...
0
40 / 35 / 9
Регистрация: 01.01.2014
Сообщений: 202
27.01.2018, 13:50  [ТС] 5
Спасибо за совет, покопаю в эту сторону. Но вопрос все равно открытый, для развития, так сказать.
0
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
27.01.2018, 20:48 6
Razvedka2020, тут явная задача для слияния. Механизм не без изъянов, но используется давно и широко. Мне лично доводилось делать слияние с выборками по 8 000 записей. Работает не быстро, но уверенно. Удивляет меня, что ты
Цитата Сообщение от Razvedka2020 Посмотреть сообщение
С word работаю достаточно давно
и не знаешь об этом механизме
0
40 / 35 / 9
Регистрация: 01.01.2014
Сообщений: 202
27.01.2018, 21:00  [ТС] 7
Цитата Сообщение от ViterAlex Посмотреть сообщение
Удивляет меня
Как говорится: Век живи, век учись...
Уже все сделал. Теперь с шаблоном разбираюсь из принципа и хочу докопаться до истины. А ведь истина где то рядом. Теперь у меня все копируется и вставляется как надо, но возникло большое "НО": при вставке текста в закладку, он не затирает предыдущий и текст накапливается. Сейчас ищу способ принудительной очистки закладки.
0
1589 / 662 / 225
Регистрация: 09.06.2011
Сообщений: 1,334
27.01.2018, 21:04 8
Цитата Сообщение от Razvedka2020 Посмотреть сообщение
при вставке текста в закладку, он не затирает предыдущий и текст накапливается.
Обычно это происходит, если изначально закладка не содержит текст и ... текст вставляется сразу после закладки. Это хорошо видно, если включить в настройках ворда отображение закладок.
1
40 / 35 / 9
Регистрация: 01.01.2014
Сообщений: 202
29.01.2018, 20:52  [ТС] 9
Спасибо всем за советы и ответы. Код в начале темы полностью рабочий. Вся проблема была как сказал Step_UA
Цитата Сообщение от Step_UA Посмотреть сообщение
если изначально закладка не содержит текст
Достаточно было сделать закладки с текстом и все пошло как надо. При вставке текста в закладку, она сама удаляется и ее не нужно принудительно удалять.
0
29.01.2018, 20:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2018, 20:52
Помогаю со студенческими работами здесь

Сохранение документа из шаблона MS Word
Есть шаблон MS Word shablon.docx Есть форма с несколькими TextBox и Button При нажатии на кнопку...

Заполнение шаблона документа Word
Помогите пожалуйста, нужно создать программу, которая будет заполнять шаблон документа.

Установка шаблона word-документа
Добрый день! Прошу помощи у форумчан. Я только начинаю постигать азы vb.net. Пишу небольшую...

Разработка модуля заполнения шаблона документа в Microsoft Word
С# Разработка модуля заполнения шаблона документа в Microsoft Word. Не могу понять как это нужно...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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