我正在使用 NetOffice 库来编辑 Word 文档。在我的文档中,"{NAME}"
我想用一个值替换一个字段"John Smith"
。但是,执行以下代码不起作用。Find.Execute
返回 false,表示失败,并且没有任何变化反映在document.Content.Text
.
// Open the template
Application word = new Application();
Document document = word.Documents.Open(fileName, false, true);
// Set up initial behavior in word
word.Visible = false;
// Replace template with final values
foreach (LetterField field in fields)
{
document.Content.Find.ClearFormatting();
document.Content.Find.Text = "{" + field.Key + "}";
document.Content.Find.Replacement.ClearFormatting();
document.Content.Find.Replacement.Text = field.Value;
document.Content.Find.Execute(null, null, null, null, null, null, null, null, null, null, WdReplace.wdReplaceAll);
}
我也尝试手动替换document.Content.Text
,但这会从页面中删除所有格式,这也是不可取的。如何在 NetOffice 中替换文档中的文本?
我注意到设置document.Content.Find.Text
似乎没有做任何事情,因为检查值仍然会产生""
,即使在将其设置为其他值之后也是如此。这是预期的行为,还是我错过了什么?
该文档包含以下内容(复制和粘贴):
Date: {DATE}
{NAME}
{ADDRESSLINE}
{ADDRESSCITY}, {ADDRESSSTATE} {ADDRESSCODE}
部分字段如下:
<"NAME", "John Smith">
<"DATE", "10/28/2021">