我想用我的数据使用OpenXML替换word文件中的mergefields。使用OpenXMl填充MergeField
我认为在代码中没有问题,因为它有时在一些模板中工作正常,有时mergefields不会被替换。
在文字模板中插入Mergefields是否存在问题?我不知道是什么问题。
下面是我使用的代码:
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
{
}
}