邮件将html格式的文本从数据库合并到word文档

时间:2017-09-15 09:04:10

标签: html ms-word mailmerge spire.doc

我正在使用来自SQL数据库的数据集进行邮件合并。我正在检索的数据存储在数据库中,其中包含一些HTML标记,例如:

我的一个合并字段包含以下文字:

<ul><li><strong>Bullet Title 1</strong>Bullet content 1.</li><li><strong>Bullet Title 2</strong>Bullet content 2.</li></ul>

我的另一个合并字段包含以下文字:

<strong>List of employees</strong><br />First Name< br />Second Name<br />Third Name

现在我正在使用Spire.Doc,但是当文档呈现时,字段显示html标记而不是呈现格式化文本。

以下是我正在使用的代码:

   Public Shared Sub FieldMerge(ByVal ds As DataSet, ByRef doc As Document)

        '**********************************
        'Merging
        '**********************************
        Dim fieldNames As New List(Of String)()
        Dim fieldValues As New List(Of String)()


        For Each dtcolumn As DataColumn In ds.Tables(0).Columns
            'Add the values to the list of string
            fieldNames.Add(dtcolumn.ColumnName)

            '**** THIS TEXT COULD HAVE SOME HTML TAGS - HOW TO RENDER THIS IN THE MERGE FIELD???? *****'
            fieldValues.Add(ds.Tables(0).Rows(0)(dtcolumn.ColumnName).ToString)

        Next

        Dim fieldNamesArray As String() = fieldNames.ToArray()
        Dim fieldValuesArray As String() = fieldValues.ToArray()

        'Execute the merge
        doc.MailMerge.Execute(fieldNamesArray, fieldValuesArray)


    End Sub

如何完成合并字段以显示格式化文本而不是html标记?任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

以下是使用GemBox.Document

执行此操作的方法
Public Shared Sub FieldMerge(ByVal ds As DataSet, ByRef doc As DocumentModel)
    AddHandler doc.MailMerge.FieldMerging,
        Sub(sender, e)
            If e.FieldName = "MyField" Then
                e.Field.Content.End.LoadText(e.Value.ToString(), LoadOptions.HtmlDefault)
                e.Inline = Nothing
            End If
        End Sub

    doc.MailMerge.Execute(ds.Tables(0))
End Sub

该示例显示了如何通过处理FieldMerging事件来自定义邮件合并过程。带有&#34; MyField&#34;的合并字段name应该收到一个HTML格式的字符串,所以&#34; MyField&#34; DataTable中的列应包含HTML文字 另外,您可以看到邮件合并可以将DataTable作为数据源。您可以找到mail merge example heremail merge documentation here

此外,我认为您会发现以下文章很有趣:How to insert HTML and RTF content during the mail merge process