How to get all merge fields of word document using open xml sdk

雨燕双飞 提交于 2019-12-22 06:57:17

问题


I am beginner to open xml sdk. I am trying to find out all merge fields of document.

But I am not getting the headers and footers merge fields.

Can any one suggest a working solution?

I am trying some thing like this -

foreach (FieldCode field in docGenerated.MainDocumentPart.RootElement.Descendants<FieldCode>())
                    {

                        String fieldText = field.Text;
                        if (fieldText.StartsWith(" MERGEFIELD"))
                        {
                            Int32 endMerge = fieldText.IndexOf("\\");

                            Int32 fieldNameLength = fieldText.Length - endMerge;

                            String fieldName = fieldText.Substring(11, endMerge - 11);

                            fieldName = fieldName.Trim();
                         }
}

回答1:


You have to loop through header and footer separately, see the following code:

foreach (var header in doc.MainDocumentPart.HeaderParts)
            foreach (var cc in header.RootElement.Descendants<FieldCode>())
                //DO CODE
foreach (var footer in doc.MainDocumentPart.FooterParts)
           foreach (var cc in footer.RootElement.Descendants<FieldCode>())
                //DO CODE


来源:https://stackoverflow.com/questions/26711828/how-to-get-all-merge-fields-of-word-document-using-open-xml-sdk

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!