Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用OpenXMLSDK获取word文档的所有合并字段_C#_Openxml_Openxml Sdk - Fatal编程技术网

C# 如何使用OpenXMLSDK获取word文档的所有合并字段

C# 如何使用OpenXMLSDK获取word文档的所有合并字段,c#,openxml,openxml-sdk,C#,Openxml,Openxml Sdk,我是xml sdk的初学者。我正在尝试查找文档的所有合并字段 但是我没有得到页眉和页脚合并字段 有人能提出一个有效的解决方案吗 我正在尝试这样的事情- foreach (FieldCode field in docGenerated.MainDocumentPart.RootElement.Descendants<FieldCode>()) { String fieldText = field.

我是xml sdk的初学者。我正在尝试查找文档的所有合并字段

但是我没有得到页眉和页脚合并字段

有人能提出一个有效的解决方案吗

我正在尝试这样的事情-

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();
                         }
}
foreach(docGenerated.MainDocumentPart.RootElement.subjections()中的FieldCode字段)
{
字符串fieldText=field.Text;
if(fieldText.StartsWith(“MERGEFIELD”))
{
Int32 endMerge=fieldText.IndexOf(“\\”);
Int32 fieldNameLength=fieldText.Length-endMerge;
字符串fieldName=fieldText.Substring(11,endMerge-11);
fieldName=fieldName.Trim();
}
}

您必须分别在页眉和页脚之间循环,请参见以下代码:

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
foreach(doc.MainDocumentPart.HeaderParts中的变量标题)
foreach(header.RootElement.subjects()中的var cc)
//执行代码
foreach(doc.MainDocumentPart.FooterParts中的变量页脚)
foreach(footer.RootElement.subjects()中的var cc)
//执行代码

word文档中的合并字段是什么?合并字段是Microsoft word等中用于创建合并或邮件合并文档的字段类型。这似乎不会捕获表中的字段。