我是C#的新手。我试图简单地使用Microsoft.Office.Interop.Word
除页脚中的合并字段未更新外,所有操作都正常。我继续只获得mergecode文本(Pname)。
下面是我代码的重要部分
private void getDoc()
{
String cdir = Directory.GetCurrentDirectory();
btnGetPoa.Visible = false;
var application = new Word.Application();
Object dir = @"../../templates/";
Directory.SetCurrentDirectory(dir.ToString());
var doc = new Word.Document();
var dirf = Directory.GetCurrentDirectory() + "\\poas.docx";
doc = application.Documents.Add(Template: dirf);
foreach (Word.Field fld in doc.Fields)
{
if(fld.Code.Text.Contains("pname"))
{
fld.Select();
application.Selection.TypeText(txtpName.Text.ToString());
}
}
object what = Word.WdGoToItem.wdGoToPage;
object which = Word.WdGoToDirection.wdGoToFirst;
object count = 3;
object missing = Missing.Value;
application.Selection.GoTo(ref what, ref which, ref count, ref missing);
application.Visible = true;
}知道为什么页脚中的字段没有合并吗?
谢谢。
发布于 2015-12-20 10:57:10
文档对象只处理主文档“故事”。因此,查询该对象中的字段不会“看到”标题、页脚、形状等中的任何字段。您需要具体地处理这些其他对象。有关如何处理所有StoryRange对象的通用方法,请参阅StoryRange和相关的VBA语言引用示例。您还可以在这个站点上找到讨论和代码。
对于您的具体请求,我假设文档只有一个部分和标准的页脚--没有第一个页脚,甚至没有页脚。( Word文档可以有多个节和不同类型的头和页脚,但是“普通香草”文档只有一个。)
Word.Range rngFooter = doc.Sections[1].Footers[Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;
foreach (Word.Field fld in rngFooter.Fields)
{
}https://stackoverflow.com/questions/34376100
复制相似问题