• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Выгрузка в Word

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

allex

Данный код демострирует как выгрузить данные в 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
 

Вложения

  • Return_and_Uplift.zip
    30,1 КБ · Просмотры: 1 230
Последнее редактирование:
H

hosm

в теме link removed поднимают вопрос об ограничении на длину вставляемых данных (~255 символов) и предлагают вставить в закладки ворда:

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

Добавлено: Аналогичный вариант пробегал в теме: link removed

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

Пример работы с MSOffice с NotesNet - :
Код:
' 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

Green Team
22.03.2012
210
1
BIT
1
День добрый.
А возможно ли сделать так, чтобы вордовый шаблон хранился не на локальной машине, где-нибудь в лотусовой базе?
 
B

beloff

конечно можно. у нас так и реализовано - шаблон приклеен к документу
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!