Ich versuche, mergemafields in Word-Datei mit meinen Daten zu ersetzen, die OpenXML verwenden.MergeField mit OpenXMl füllen
Ich denke, es gibt kein Problem im Code als manchmal funktioniert es gut in einigen Vorlagen und manchmal die Mergefields wird nicht ersetzt.
Gibt es ein Problem beim Einfügen Mergefields in Word-Vorlage? Ich weiß nicht, was das Problem ist.
Unten ist der Code, den ich verwenden:
public void Fill_Document_Fields(Dictionary<string, string> Fields, string FilePath)
{
try
{
using (WordprocessingDocument Doc = WordprocessingDocument.Open(FilePath, true))
{
foreach (FieldCode field in Doc.MainDocumentPart.RootElement.Descendants<FieldCode>())
{
string FieldName =string.Empty;
try
{
FieldName = field.Text.Trim().Split(' ')[2];
}
catch
{
FieldName = field.Text.Trim();
}
foreach (Run run in Doc.MainDocumentPart.Document.Descendants<Run>())
{
foreach (Text txtFromRun in run.Descendants<Text>().Where(a => a.Text == "«" + FieldName + "»"))
{
string itemValue;
if (Fields.TryGetValue(txtFromRun.Text, out itemValue))
{
txtFromRun.Text = itemValue;
}
}
}
}
}
}
catch
{
}
}