2014-01-15 2 views
0

Я хочу открыть существующий файл .docx и вставить текст во второй абзац.Как добавить текст в существующий файл .docx в нужное место

Private Sub insertText() 
Dim WordApp As New Microsoft.Office.Interop.Word.Application 
Dim aDoc As Microsoft.Office.Interop.Word.Document = WordApp.Documents.Open("C:\File1.docx") 
Dim RNG As Microsoft.Office.Interop.Word.Range() 

end sub 

Теперь, что я должен написать, чтобы вставить текст во второй пара? Любая помощь будет принята с благодарностью. Заранее спасибо.

ответ

0

Вы можете использовать Application.Selection.TypeText() для этого:

Private Sub insertText() 
    Dim WordApp As New Microsoft.Office.Interop.Word.Application 
    WordApp.Visible = True 
    Dim aDoc As Microsoft.Office.Interop.Word.Document = WordApp.Documents.Open("C:\File1.docx") 

    Dim paragraphs As Word.Paragraphs = aDoc.Paragraphs 

    If (paragraphs.Count > 1) Then 
     paragraphs(2).Range.Select() 
     WordApp.Selection.TypeText("test") 
    End If 

    aDoc.Save() 
    aDoc.Close() 

    WordApp.Quit() 
End Sub 

Вы, вероятно, следует закрыть документ затем слово безопасно, так что вы не имеете winword.exe висит после того, как ваша программа закончена (я добавил этот быстросъемные и-грязный для вас, но не на 100% надежный)

Прошу прощения за мой бедный, ленивый стиль vb.net. Если вам нравится c sharp - обратите внимание, что c sharp, так как v4.0 намного лучше, чем раньше, с Office Interop, и я рекомендую его.

+0

@Jack. Большое спасибо за внимание. Бог благословит вас – Dev

+0

@Jack, Ошибка в параграфах. Граф не является членом Microsoft.Office.Interop.Word.Paragraph. Что мне делать здесь? – Dev

+0

@Jack, Ошибка в параграфах. Граф не является членом Microsoft.Office.Interop.Word.Paragraph. Что мне делать здесь? А также что, если что-то написано во втором параграфе? Кодекс должен вставить новый абзац выше существующего второго параграфа, а затем текст следует включить в этот недавно созданный параграф. – Dev

0

Да .. Я получил ответ ..

Private Sub insertText() 
    Dim WordApp As New Microsoft.Office.Interop.Word.Application 
    Dim aDoc As Microsoft.Office.Interop.Word.Document = WordApp.Documents.Open("C:\File1.docx") 
    Dim RNG As Microsoft.Office.Interop.Word.Range() 
    Dim PARA As Microsoft.Office.Interop.Word.Paragraph = aDoc.Paragraphs.Add() 

    If aDoc.Paragraphs.Count > 1 Then 
     aDoc.Paragraphs(2).Range.InsertParagraphBefore() 
     aDoc.Paragraphs(2).Range.Text = "Hello World" 
    end if 
end sub 

Этот код первый новый пункт выше второго пункта и вставляет Hello World во вновь созданный второй пункт. Cheers ....

Смежные вопросы