我正在使用以下代码将文本发送到一个简单的 word 模板,我目前只使用一个 MergeField 设置来测试我可以让它工作。
我正在使用的代码如下:
public static void ReplaceMailMergeField(string pWordDoc, string pMergeField, string pValue)
{
object docName = pWordDoc;
object missing = Missing.Value;
Word.MailMerge mailMerge;
Word._Document doc;
Word.Application app = new Word.Application();
app.Visible = false;
doc = app.Documents.Open(ref docName, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing);
mailMerge = doc.MailMerge;
foreach (Word.MailMergeField f in mailMerge.Fields)
{
if (f.Code.Text.IndexOf("MERGEFIELD \"" + pMergeField + "\"") > -1)
{
f.Select();
app.Selection.TypeText(pValue);
}
}
object saveChanges = Word.WdSaveOptions.wdSaveChanges;
doc.Close(ref saveChanges, ref missing, ref missing);
app.Quit(ref missing, ref missing, ref missing);
}
我从我的应用程序中调用以下内容:
string pWordDoc = @"C:\Users\Pete-Laptop\Documents\CMS Document Mangement\Word Template.dotx";
cDocument.ReplaceMailMergeField(pWordDoc, "fieldAddress1", "Put address here!");
但什么也没有发生。当我单步执行代码时,它会到达 app.Documents.Open,然后似乎冻结了。我相信这是因为应用程序找不到我的 Word 文档。我将完整文件路径发送到文件名参数是否正确?如果没有,应用程序将如何找到我的 Word 模板?