Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Подстановка данных из excel в word / 25 сообщений из 30, страница 1 из 2
18.10.2010, 17:17
    #36905752
LeoNton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
Есть книга екселя с исходными данными. В каждой строке уникальные значения, для каждой строки есть столбцы с инфой.
Например,
Договор Фирма Адрес
23 АА ГГГ
32 ББ ДДД

В ворде есть скопированные подряд шаблоны письма, количество которых равно количеству записей в ексель.

Мы заключили с вами /Фирма/, /Адрес/ договор номер /Договор/.

Как автоматически можно перенести данные из екселя в ворд? Подскажите хотя бы в сторону чего смотреть?
...
Рейтинг: 0 / 0
18.10.2010, 18:02
    #36905898
f
f
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
Слияние.
...
Рейтинг: 0 / 0
18.10.2010, 18:09
    #36905917
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
LeoNton,

Лучше сделать не один файл Ворда с кучей ссылок, а примерно так:
- в книге Экзеля с данными пишем небольшой макрос, который текущую строку таблицы скидывает в некий "Буфер" (скажем, первую строку другого листа)
- берем шаблон одного письма и привязываем поля к ячейкам буферного листа исходной книги, созраняем как шаблон Ворд
- дописываем в макрос Экзеля после скидывания на буферный лист - открывать шаблое Ворда: при этом поля не только заполнятся нужными данными, но и будет моздан новый Вордовский документ, который можно сохранить отдельно

Как-то так...

Если сложно - могу выложить пример реализации.
...
Рейтинг: 0 / 0
18.10.2010, 18:20
    #36905950
LeoNton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
AndreTM,
если не тяжело, то выложи)
Ни разу в жизни макросы не писал.
А здесь копировать-вставлять на всю ночь)
...
Рейтинг: 0 / 0
18.10.2010, 18:47
    #36905980
f
f
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
...
Рейтинг: 0 / 0
18.10.2010, 19:02
    #36906012
LeoNton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
F,спасибо) Уже полчаса читаю слияние
...
Рейтинг: 0 / 0
18.10.2010, 22:40
    #36906233
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
Вот примерно так. Поля в Word прсто скопированы как связи с ячейками Excel (Копировать--Спец.вставка-Связь в виде Неформатированный текст).
...
Рейтинг: 0 / 0
19.10.2010, 10:13
    #36906744
LeoNton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
AndreTM,
спасибо))
Хотя в 2007 офисе почему-то автоматически строчку на лист буфер не переносит
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
28.03.2012, 10:46
    #37726925
EducatedFool
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
Вдруг кому пригодится ...

Сделал программу для заполнения документов данными из таблицы Excel (из Excel в Word)

--------------------
Надстройка предназначена для формирования (подготовки) документов по шаблонам, с заполнением созданных файлов данными из текущей книги Excel.

В качестве шаблонов могут выступать следующие типы файлов:
- документы Word (расширения DOC, DOCX, DOCM)
- шаблоны Word (расширения DOT, DOTX, DOTM)
- книги Excel (расширения XLS, XLSX, XLSM, XLSB)
- шаблоны Excel (расширения XLT, XLTX, XLTM)
- текстовые документы (расширения TXT, DAT, XML и т.д.)

В качестве исходных данных для заполнения, используется открытый в Excel файл (с таблицей, содержащей строку заголовка)

Количество шаблонов документов не ограничено
--------------------------------
В каких случаях вам может пригодиться эта надстройка:

- если у вас в таблице Excel хранится список контрагентов (с их реквизитами), и вы хотите нажатием одной кнопки формировать договоры, акты или коммерческие предложения для каждого из них

- если в вашей таблице Excel хранятся паспортные данные сотрудников, и вам необходимо быстро сформировать по шаблону приказы или прочие документы в формате Word, заполнив созданные документы данными сотрудников

- подготовить письма, уведомления, грамоты в формате PDF или Word, заполнив созданные файлы информацией с листа Excel

- и т.д. и т.п. - надстройку можно применять для создания любых документов на основе данных из Excel
--------------------------------

Скачать надстройку можно здесь:
http://excelvba.ru/programmes/FillDocuments
...
Рейтинг: 0 / 0
11.05.2012, 00:10
    #37788605
ev8383
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
AndreTMВот примерно так. Поля в Word прсто скопированы как связи с ячейками Excel (Копировать--Спец.вставка-Связь в виде Неформатированный текст).

Подскажите, пожалуйста, можно ли переделать код, чтобы на выходе файл имел наименование, соответствующее ячейкам, например "Отчет B2".doc. Возможно ли сделать, чтобы он сразу сохранялся (с открытием или без) в формате pdf штатными средставми MS Office 2010 или с помощью PDFCreator. Спасибо!
...
Рейтинг: 0 / 0
11.05.2012, 01:14
    #37788650
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
Например, замените код формирования документа на нижеприведенный:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Private Sub cmdShowD_Click()
    
    If Application.Intersect(ActiveCell, ActiveSheet.UsedRange) Is Nothing Then Exit Sub
    
    ActiveCell.EntireRow.Copy Sheets("Буфер").Rows(2)
    cPathD = ActiveWorkbook.Path & "\"
    cFileD = cPathD & "Договор.doc"
    cCellName = ActiveCell.Address(False, False, xlA1)
    
    Set WD = CreateObject("Word.Application")
    WD.Visible = False
    WD.Documents.Open Filename:=cFileD
    'WD.Application.ScreenUpdating = False
    For Each aF In WD.ActiveDocument.Fields
        aF.Unlink
    Next
    'WD.Application.ScreenUpdating = True
    WD.Application.DisplayAlerts = False
    WD.ActiveDocument.SaveAs Filename:=cPathD & "Отчет " & cCellName, FileFormat:=wdFormatDocument
    WD.Application.DisplayAlerts = True
    WD.Application.Quit
    Set WD = Nothing
    
End Sub

Выделенная строка - это запись результата как обычного Word-файла. Соответственно, если MSO2010 поддреживает сохранение в формате PDF - просто укажите соответствующий формат. Если же использовать стороннее приложение - то можно в конце процедуры дописать вызов Shell и нужной программы, с параметрами для преобразования; более того, если не надо - можно не создавать "промежуточного" *.doc, а сразу вызывать, например, PDFCreator для создания...
Или Вы вообще не знаете, как работать с VBA, и вам надо "всё и сразу готовое"?
...
Рейтинг: 0 / 0
11.05.2012, 03:14
    #37788686
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
ev8383Возможно ли сделать, чтобы он сразу сохранялся (с открытием или без) в формате pdf штатными средставми MS Office 2010 или с помощью PDFCreator. Спасибо!Например, используя PDF-принтер, можно сделать так:
Код: vbnet
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.
Private Sub cmdShowD_Click()
    
    If Application.Intersect(ActiveCell, ActiveSheet.UsedRange) Is Nothing Then Exit Sub
    
    ActiveCell.EntireRow.Copy Sheets("Буфер").Rows(2)
    cPathD = ActiveWorkbook.Path & "\"
    cCellName = ActiveCell.Address(False, False, xlA1)
    
    Set WD = CreateObject("Word.Application")
    WD.Visible = True
    WD.Documents.Open Filename:=cPathD & "Договор.doc"
    
    WD.Documents.Save True
    
    Const wdPrintAllDocument = 0
    Const wdPrintDocumentContent = 0
    Const wdPrintAllPages = 0
    
    cPrinter = WD.Application.ActivePrinter
    WD.Application.ActivePrinter = "PDFCreator"
    WD.Application.PrintOut Filename:=cPathD & "Договор.doc", _
        PrintToFile:= True, _
        OutputFileName:=cPathD & "Отчет " & cCellName & ".pdf", _
        Range:=wdPrintAllDocument, Item:=wdPrintDocumentContent, _
        Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
        ManualDuplexPrint:=False, Collate:=True, Background:=True, _
        PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
    WD.Application.ActivePrinter = cPrinter
    
    WD.Application.Quit
    Set WD = Nothing
    
End Sub

...
Рейтинг: 0 / 0
11.05.2012, 11:56
    #37789077
ev8383
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
AndreTMНапример, замените код формирования документа на нижеприведенный:
+
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Private Sub cmdShowD_Click()
    
    If Application.Intersect(ActiveCell, ActiveSheet.UsedRange) Is Nothing Then Exit Sub
    
    ActiveCell.EntireRow.Copy Sheets("Буфер").Rows(2)
    cPathD = ActiveWorkbook.Path & "\"
    cFileD = cPathD & "Договор.doc"
    cCellName = ActiveCell.Address(False, False, xlA1)
    
    Set WD = CreateObject("Word.Application")
    WD.Visible = False
    WD.Documents.Open Filename:=cFileD
    'WD.Application.ScreenUpdating = False
    For Each aF In WD.ActiveDocument.Fields
        aF.Unlink
    Next
    'WD.Application.ScreenUpdating = True
    WD.Application.DisplayAlerts = False
    WD.ActiveDocument.SaveAs Filename:=cPathD & "Отчет " & cCellName, FileFormat:=wdFormatDocument
    WD.Application.DisplayAlerts = True
    WD.Application.Quit
    Set WD = Nothing
    
End Sub

Выделенная строка - это запись результата как обычного Word-файла. Соответственно, если MSO2010 поддреживает сохранение в формате PDF - просто укажите соответствующий формат. Если же использовать стороннее приложение - то можно в конце процедуры дописать вызов Shell и нужной программы, с параметрами для преобразования; более того, если не надо - можно не создавать "промежуточного" *.doc, а сразу вызывать, например, PDFCreator для создания...
Или Вы вообще не знаете, как работать с VBA, и вам надо "всё и сразу готовое"?


Большое спасибо за подробный и оперативный ответ. В Word сохраняется преркасно. Подскажите, пожалуйста, какое значение задать в cPathD, чтобы на выходе было, например, "Дата_Договор_Номер". Еще как сделать штатными средствами pdf, пытался заменить строку, но получившийся pdf не открывается (возникает ошибка format error: not PDF or corrupted)
Код: vbnet
1.
2.
 
WD.ActiveDocument.SaveAs Filename:=cPathD & "Îò÷åò " & cCellName & ".pdf", FileFormat:=wdFormatPDF


Спасибо!!
...
Рейтинг: 0 / 0
11.05.2012, 11:58
    #37789086
ev8383
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
AndreTMev8383Возможно ли сделать, чтобы он сразу сохранялся (с открытием или без) в формате pdf штатными средставми MS Office 2010 или с помощью PDFCreator. Спасибо!Например, используя PDF-принтер, можно сделать так:
+
Код: vbnet
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.
Private Sub cmdShowD_Click()
    
    If Application.Intersect(ActiveCell, ActiveSheet.UsedRange) Is Nothing Then Exit Sub
    
    ActiveCell.EntireRow.Copy Sheets("Буфер").Rows(2)
    cPathD = ActiveWorkbook.Path & "\"
    cCellName = ActiveCell.Address(False, False, xlA1)
    
    Set WD = CreateObject("Word.Application")
    WD.Visible = True
    WD.Documents.Open Filename:=cPathD & "Договор.doc"
    
    WD.Documents.Save True
    
    Const wdPrintAllDocument = 0
    Const wdPrintDocumentContent = 0
    Const wdPrintAllPages = 0
    
    cPrinter = WD.Application.ActivePrinter
    WD.Application.ActivePrinter = "PDFCreator"
    WD.Application.PrintOut Filename:=cPathD & "Договор.doc", _
        PrintToFile:= True, _
        OutputFileName:=cPathD & "Отчет " & cCellName & ".pdf", _
        Range:=wdPrintAllDocument, Item:=wdPrintDocumentContent, _
        Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
        ManualDuplexPrint:=False, Collate:=True, Background:=True, _
        PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
    WD.Application.ActivePrinter = cPrinter
    
    WD.Application.Quit
    Set WD = Nothing
    
End Sub



Спасибо за код. Печать идет, но файл не открывается "format error: not PDF or corrupted", хотя по размеру вполе пдофский (порядка 500 кб)
...
Рейтинг: 0 / 0
11.05.2012, 16:07
    #37789671
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
ev8383Спасибо за код. Печать идет, но файл не открывается "format error: not PDF or corrupted", хотя по размеру вполе пдофский (порядка 500 кб)Если вы использовали PDFCreator от SourceForge, то там выходной формат по умолчанию - нестандартный, и чтается, например, их же PDFReader'ом SumatraPDF http://www.pdfreaders.org/
...
Рейтинг: 0 / 0
11.05.2012, 16:25
    #37789704
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
Если нужно результат получить в pdf - то в 2007/10 экселе можно обойтись без Ворда и виртуального принтера (если конечно можно в Экселе создать нужный дизайн документа) - просто сохраните страницу в этом формате.
...
Рейтинг: 0 / 0
11.05.2012, 18:36
    #37789952
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
Hugo121Если нужно результат получить в pdf - то в 2007/10 экселе можно обойтись без Ворда и виртуального принтера (если конечно можно в Экселе создать нужный дизайн документа) - просто сохраните страницу в этом формате.AndreTMВыделенная строка - это запись результата как обычного Word-файла. Соответственно, если MSO2010 поддерживает сохранение в формате PDF - просто укажите соответствующий формат ...
...
Рейтинг: 0 / 0
11.05.2012, 18:36
    #37789953
ev8383
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
AndreTMev8383Спасибо за код. Печать идет, но файл не открывается "format error: not PDF or corrupted", хотя по размеру вполе пдофский (порядка 500 кб)Если вы использовали PDFCreator от SourceForge, то там выходной формат по умолчанию - нестандартный, и чтается, например, их же PDFReader'ом SumatraPDF http://www.pdfreaders.org/ Спасибо за ответ. Можно ли в первый код добавить еще шаг, который будет открытый word документ сохранять в pdf, что-то на подобии этого

Код: vbnet
1.
2.
3.
4.
5.
Sub SaveAllOpenDocsAsPDF()
For Each aDocument In Application.Documents
    aDocument.SaveAs Filename:=aDocument.FullName & ".pdf", FileFormat:=wdFormatPDF
Next aDocument
End Sub
...
Рейтинг: 0 / 0
11.05.2012, 18:42
    #37789961
ev8383
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
AndreTMHugo121Если нужно результат получить в pdf - то в 2007/10 экселе можно обойтись без Ворда и виртуального принтера (если конечно можно в Экселе создать нужный дизайн документа) - просто сохраните страницу в этом формате.AndreTMВыделенная строка - это запись результата как обычного Word-файла. Соответственно, если MSO2010 поддерживает сохранение в формате PDF - просто укажите соответствующий формат ... Это все понятно, но цель такова, чтобы данные выгружались из Excel в Word по заданному шаблону, который в свою очередь печатался или сохранялся в pdf автоматически, без дополнительных действий со стороны пользователя. В excel дизайн воспроизвести мне не удается.
...
Рейтинг: 0 / 0
11.05.2012, 19:16
    #37790001
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
Странный вы человек...
Так я же сразу спрашивал - вот и ответили бы "сделайте всё за меня, а я буду безмерно благодарен".
А то, что вам выше приведен весь необходимый код - вы не заметили?
Кто вам запрещает И сохранить файл как word-документ с нужным именем, И тут же сохранить его же в PDF?
...
Рейтинг: 0 / 0
11.05.2012, 19:34
    #37790023
ev8383
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
AndreTMСтранный вы человек...
Так я же сразу спрашивал - вот и ответили бы "сделайте всё за меня, а я буду безмерно благодарен".
А то, что вам выше приведен весь необходимый код - вы не заметили?
Кто вам запрещает И сохранить файл как word-документ с нужным именем, И тут же сохранить его же в PDF? я пытался, но , видимо, знаний и навыков недостаточно, если Вы сможете сделать или подсказать, где почитать -посмотреть, то действительно буду очень признателен. Спасибо!
...
Рейтинг: 0 / 0
15.05.2012, 23:21
    #37796134
AndreSAM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
AndreTM, сделал все по принципу и подобию...
но почему-то при обновлении связей до и после связанного фрагмента вставляется перенос строки.
не подскажете, почему???
форматирование уже какое-только не пробовал... бесполезно.
...
Рейтинг: 0 / 0
16.05.2012, 00:27
    #37796208
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
AndreSAMформатирование уже какое-только не пробовал... бесполезно. 9630015 Насчет "неформатированного текста". Впрочем, за 2007/2010 - не отвечаю... а посмотреть сейчас просто негде.
...
Рейтинг: 0 / 0
18.05.2012, 18:02
    #37801583
ev8383
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
ev8383AndreTMНапример, замените код формирования документа на нижеприведенный:
++
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Private Sub cmdShowD_Click()
    
    If Application.Intersect(ActiveCell, ActiveSheet.UsedRange) Is Nothing Then Exit Sub
    
    ActiveCell.EntireRow.Copy Sheets("Буфер").Rows(2)
    cPathD = ActiveWorkbook.Path & "\"
    cFileD = cPathD & "Договор.doc"
    cCellName = ActiveCell.Address(False, False, xlA1)
    
    Set WD = CreateObject("Word.Application")
    WD.Visible = False
    WD.Documents.Open Filename:=cFileD
    'WD.Application.ScreenUpdating = False
    For Each aF In WD.ActiveDocument.Fields
        aF.Unlink
    Next
    'WD.Application.ScreenUpdating = True
    WD.Application.DisplayAlerts = False
    WD.ActiveDocument.SaveAs Filename:=cPathD & "Отчет " & cCellName, FileFormat:=wdFormatDocument
    WD.Application.DisplayAlerts = True
    WD.Application.Quit
    Set WD = Nothing
    
End Sub

Выделенная строка - это запись результата как обычного Word-файла. Соответственно, если MSO2010 поддреживает сохранение в формате PDF - просто укажите соответствующий формат. Если же использовать стороннее приложение - то можно в конце процедуры дописать вызов Shell и нужной программы, с параметрами для преобразования; более того, если не надо - можно не создавать "промежуточного" *.doc, а сразу вызывать, например, PDFCreator для создания...
Или Вы вообще не знаете, как работать с VBA, и вам надо "всё и сразу готовое"?


Большое спасибо за подробный и оперативный ответ. В Word сохраняется преркасно. Подскажите, пожалуйста, какое значение задать в cPathD, чтобы на выходе было, например, "Дата_Договор_Номер". Еще как сделать штатными средствами pdf, пытался заменить строку, но получившийся pdf не открывается (возникает ошибка format error: not PDF or corrupted)
+
Код: vbnet
1.
2.
 
WD.ActiveDocument.SaveAs Filename:=cPathD & "Îò÷åò " & cCellName & ".pdf", FileFormat:=wdFormatPDF


Спасибо!!

все получилось, чтобы сохранить штатными средствами в pdf достаточно было добавить ссылку на библиотеку Windows Word 14 Object Library. AndreTM еще раз спасибо за код
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
06.06.2013, 10:50
    #38287923
smaikl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка данных из excel в word
Собратья, помогите.

Задача банальная - есть файл с данными на ООО. Нужно заполнить договор в WORD.
Использую Office2010.
Копирую в Excel ячейку и вставку "связать и объединить форматирование".
Данные переносятся и обновляются.

НО!!!
после обновления каждая такая вставка делается с новой строки. Т.е.

должно быть
ООО "Торговое предприятие", именуемое в дальнейшем «ЗАКАЗЧИК», в лице Иванова И.И., действующего...

а получается перевод строки
ООО "Торговое предприятие"
, именуемое в дальнейшем «ЗАКАЗЧИК», в лице
Иванова И.И.
, действующего...


EXCEL
ООО "Торговое предприятие"
Иванова И.И.

Формат ячеек пробовал общий и текстовый.
Пробовал вставку связь "связать и сохранить исходное форматирование" и "связать и объединить форматирование"

НЕ ПОМОГАЕТ.
Каждую вставку делает отдельной строкой, а нужно чтобы внутри текста.

HELP
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Подстановка данных из excel в word / 25 сообщений из 30, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]