【问题标题】:Rewriting Bookmarks in Word Using VB.NET使用 VB.NET 重写 Word 中的书签
【发布时间】:2014-06-05 19:27:57
【问题描述】:

现在我有一个包含以下文本的 Word 文档:

全名 位置 地址

每一行都作为一个单独的书签。每行的书签名称与单词相同(FullName 的书签为 FullName)。

当我遍历书签并更新三个不同书签的文本时,前两个被删除,我只剩下地址了。我想一些书签是如何在编辑过程中以某种方式组合在一起的。

这是我的代码:

Dim saveFileDialog1 As New SaveFileDialog()
saveFileDialog1.Filter = "Word|*.docx"
saveFileDialog1.Title = "Save your report file"

Dim FilePath = "C:\Users\Administrator.Laptop1\Desktop\TESTER.docx"
Dim myWordDoc As Microsoft.Office.Interop.Word.Document
Dim myWordApp As Microsoft.Office.Interop.Word.Application
Dim filepathname As Object = TryCast(FilePath, Object)
Dim missing As Object = Type.Missing
Dim objTrue As Object = TryCast(True, Object)

' create Word.Application object for the document
myWordApp = New Microsoft.Office.Interop.Word.Application

' open the document
myWordDoc = myWordApp.Documents.Open(filepathname, missing, missing, missing, missing,     missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing)

'update Opinion
myWordDoc.Bookmarks("SendDate").Range.Text =     (Convert.ToDateTime(TextBox7.Text)).ToString("MMMM dd, yyyy")
myWordDoc.Bookmarks("FullName").Range.Text = TextBox4.Text & " " & TextBox5.Text & " " & TextBox6.Text & vbLf
myWordDoc.Bookmarks("Position").Range.Text = TextBox8.Text & vbLf

【问题讨论】:

  • 这是 ms-word 中很常见的问题。 try this 或在 google 中进行更好的搜索。

标签: vb.net ms-word automation bookmarks


【解决方案1】:

您应该考虑使用 DocumentFormat.OpenXml.Wordprocessing 和简单的替换,而不是使用互操作服务和书签来完成此操作。

它更稳定,性能更好,不会挂词。

您可以简单地遍历文档主体后代以查找“{FirstName}”之类的内容并进行替换,而不是使用可能总是困扰您的书签。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多