2017-09-15 65 views
0

我正在做一個郵件合併使用來自SQL數據庫的數據集。 ,我取回存儲在數據庫中有一些HTML標記的數據,例如:郵件合併HTML格式文本從數據庫到Word文檔

我的一個合併域的包含這樣的文字:

<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標籤?任何意見將不勝感激。

回答

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事件郵件合併過程。具有「MyField」名稱的合併字段應該接收HTML格式的字符串,因此DataTable中的「MyField」列應該具有HTML文本。
另外,您可以看到郵件合併可以將DataTable作爲數據源。你可以找到mail merge example heremail merge documentation here。我想你會發現以下有趣的文章:How to insert HTML and RTF content during the mail merge process