Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Автоматизация word


Автор: gsa21 11.1.2008, 14:19
Ребят подскажите как добавить програмно информация в договор , например фамилия, имя, отчество в определенное место в ворде! например в середине текста, 
желательно какой нить рабочий примерчик... заранее спасиба 

код программы такой 

Dim oWord As Microsoft.Office.Interop.Word.Application 
Dim oDoc As Microsoft.Office.Interop.Word.Document 
Dim oTable As Microsoft.Office.Interop.Word.Table 
Dim oPara1 As Microsoft.Office.Interop.Word.Paragraph, oPara2 As Microsoft.Office.Interop.Word.Paragraph 
Dim oPara3 As Microsoft.Office.Interop.Word.Paragraph, oPara4 As Microsoft.Office.Interop.Word.Paragraph 
Dim oRng As Microsoft.Office.Interop.Word.Range 
Dim oShape As Microsoft.Office.Interop.Word.InlineShape 
Dim oChart As Object 
Dim Pos As Double 


'Start Word and open the document template. 
oWord = CreateObject("Word.Application") 
oWord.Visible = True 

oDoc = oWord.Documents.Open("C:\О.П.С\Договор ОПС 2006.doc") 

Insert a paragraph at the beginning of the document. 
oPara1 = oDoc.Content.Paragraphs.Add 
oPara1.Range.Text = "Heading 1" 
oPara1.Range.Font.Bold = True 
oPara1.Format.SpaceAfter = 24 '24 pt spacing after paragraph. 
oPara1.Range.InsertParagraphAfter() 

открывается документ ив опрос состоит в следующем, как добавить информацию в нужное место документа, если напремер сделать 3 textbox1,2,3 и в них например ввести фамилия имя отчество??? Затем эти параметры автоматически при нажатии кнопки установятся в нужно в тексте место? 

как я понял это делается вот так , я добавил метку в документ водр например info прям в самый последний строчка! 

oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("info").Range) 
oPara2.Range.Text = "Heading 2" 
oPara2.Format.SpaceAfter = 6 
oPara2.Range.InsertParagraphAfter() 
но пишет ошибку!!!может я что не так ввожу? 
Запрашиваемый номер семейства не существует.

Автор: BOSS1999 12.2.2008, 12:10
одно время делал в ворде шаблон, в котором поля, которы надо заменить на данные просто делал некими переменными типа #val1
а потом в коде открывал этот шаблон - поиском находил это поле и заменял на нужные данные и сохранял как документ
Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "нет"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute

кусок из макроса вордового
а вообще лучше проще имхо работать с Excel

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)