Выгрузка в Word

  • Автор темы allex
  • Дата начала
A

allex

#1
Данный код демострирует как выгрузить данные в Word, используя для этого поля Word'a.
Этот код я использовал для формирования договора. Что оказалось удобным способом для автоматического формирования текста договора (где как правило меняеются данные в одном и том же месте текста договора)


Код:
Dim s As New notessession
 
Dim todaydate As New notesdatetime("Today")
 
 
Dim word As Variant
 
Dim wordoc As Variant
 
 
Dim todaysdate As String
 
Dim orderid As String
 
Dim producedby As String
 
Dim storeid As String
 
Dim customername As String
 
Dim address As String
 
Dim citytown As String
 
Dim postcode As String
 
Dim daytimeno As String
 
Dim eveningno As String
 
 
'Присваивание значений пересенным (Lotus)
 
todaysdate = todaydate.localtime
 
orderid = "2183763248"
 
producedby = s.username
 
storeid = "12345"
 
customername = "John Doe"
 
address = "Apartment 5c, 5 Test Avenue"
 
citytown = "Testtown"
 
postcode = "XX5 5XX"
 
daytimeno = "1234567890"
 
eveningno = "0987654321"
 
 
'Создание Word-документа
Set word = CreateObject("Word.Application") 'Создание объекта Word'a
Call word.documents.add("Return and Uplift.dot") 'Создание нового документа по шаблону Return and Uplift.dot
Set worddoc = word.activedocument 'Активация объекта
 
'Присваивание полям-Word'a значений из полей notes-документа
worddoc.FormFields(1).result = todaysdate
worddoc.FormFields(2).result = orderid
worddoc.FormFields(3).result = producedby
worddoc.FormFields(4).result = storeid
worddoc.FormFields(5).result = customername
worddoc.FormFields(6).result = address
worddoc.FormFields(7).result = citytown
worddoc.FormFields(8).result = postcode
worddoc.FormFields(9).result = daytimeno
worddoc.FormFields(10).result = eveningno
 
worddoc.saveas(customername) 'сохранение документа-Word'a с именем файла "John Doe.doc"
word.visible = True 'Сделать видимым окно Word'a
'word.quit 'закрытие Word'a
zip архив с шаблоном Word
 

Вложения

Последнее редактирование:

hosm

* so what *
18.05.2009
2 442
6
#2
в теме Проблема при вставке данных в поля Word поднимают вопрос об ограничении на длину вставляемых данных (~255 символов) и предлагают вставить в закладки ворда:

Код:
If WordDoc.Bookmarks.Exists( "Название закладки" )=True Then ' проверка что закладка есть в документе
Call vWordAppCPR.Selection.GoTo( -1,,, "Название закладки" ) ' переходим на указанную закладку
 
Call vWordAppCPR.Selection.TypeText( "Строка любой длины")
end if
Добавлено: Аналогичный вариант пробегал в теме: Microsoft Word: (слишком длинная строка)

Еще пример в теме [post="165286"]Lotus и Word[/post]

Пример работы с MSOffice с NotesNet - http://www.notesnet.ru/library/docid/5E77A5 :
Код:
' TmpDocName – путь на диске к документу-шаблону
' bookmark01 – имя закладки определенной в MS Word
wObj =CreateObject("Word.Application") 'Создание объекта Word'a
wObj.Documents.Add TmpDocName ' работа с шаблоном (открытие файла)
wObj.Selection.GoTo wdGoToBookmark, , , bookmark01 'переход к закладке
wObj.Selection.Delete wdCharacter, 1 ' удаление закладки и текста закладки, курсор остается на месте закладки
wObj.Selection.TypeText doc.ResultField(0) ' вывод информации в текущую позицию курсора
 
Последнее редактирование модератором:

Eugen

Well-known member
22.03.2012
177
0
#3
День добрый.
А возможно ли сделать так, чтобы вордовый шаблон хранился не на локальной машине, где-нибудь в лотусовой базе?
 

beloff

Well-known member
24.07.2012
113
1
#4
конечно можно. у нас так и реализовано - шаблон приклеен к документу