[英]Mail merge html formatted text from database to word document
我正在使用來自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標簽? 任何建議將不勝感激。
使用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格式的字符串,所以在你的“MyField的”列DataTable
應該有HTML文本。
您還可以看到,郵件合並可以將DataTable
用作數據源。 您可以在此處找到郵件合並示例 ,並在此處找到郵件 合並文檔 。
另外,我認為您會發現以下文章很有趣: 如何在郵件合並過程中插入HTML和RTF內容
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.