Ich möchte über alle Zeilen einer MS-Word-Seriendruck-Datenquelle iterieren und die relevanten Daten in ein XML extrahieren.Eine Word-Seriendruck-Datenquelle programmgesteuert prüfen
Ich bin derzeit mit diesen Code:
Imports Microsoft.Office.Interop
Do
objXW.WriteStartElement("Recipient")
Dim objDataFields As Word.MailMergeDataFields = DataSource.DataFields
For Each FieldIndex As Integer In mdictMergeFields.Keys
strValue = objDataFields.Item(FieldIndex).Value
If Not String.IsNullOrEmpty(strValue) Then
strName = mdictMergeFields(FieldIndex)
objXW.WriteElementString(strName, strValue)
End If
Next
objXW.WriteEndElement()
If DataSource.ActiveRecord = LastRecord Then
Exit Do
Else
DataSource.ActiveRecord = Word.WdMailMergeActiveRecord.wdNextDataSourceRecord
End If
Loop
Und es stellt sich heraus, ein wenig träge (etwa 1 Sekunde für jede Zeile) zu sein. Gibt es einen Weg, es schneller zu machen?
Meine Fantasie findet eine Funktion wie MailMergeDataSource.ToDatatable
und prüft dann die Datentabelle.
Früher habe ich nur einen Profiler auf meine App und fand heraus, dass die problematische Zeile ist strValue = objDataFields.Item (Field) .Value es mit strValue ersetzen = „“ macht die Anwendung extrem schnelle! –