在C#中使用OpenXML更改word文档中的不同页眉

问题描述 投票:0回答:1

我要修改word文档的页眉。从第 2 页开始,页眉与第一页不同,并且都包含相同的表格。 我正在使用以下代码:

    var headerparts = doc.MainDocumentPart.HeaderParts.ToList(); 
    foreach (HeaderPart headerpart in headerparts)
    {
       var headers = headerpart.Header.ToList();
       try
       {
          foreach (Table table in headers)
          {
             table.Elements<TableRow>().ElementAt(1).Elements<TableCell>().ElementAt(1).RemoveAllChildren();
             table.Elements<TableRow>().ElementAt(1).Elements<TableCell>().ElementAt(1).Append(new Paragraph(new Run(new Text("new text"))));
          }        
       }
       catch (Exception ex) { }
    }

仅对第一页有效,对第二页则没有任何效果。

为什么会这样?如何修改后续页面的页眉? 感谢任何人。

c# openxml
1个回答
0
投票

让它像这样工作:

MainDocumentPart mainPart = doc.MainDocumentPart;
        var hdp = mainPart.HeaderParts.ToList();
        foreach (HeaderPart hd in hdp)
        {
            Header h = hd.Header;
            var  childs = h.Elements<Table>().ToList();
            try
            {
                foreach (Table table in childs)
                {
                    table.Elements<TableRow>().ElementAt(1).Elements<TableCell>().ElementAt(1).RemoveAllChildren();
                    table.Elements<TableRow>().ElementAt(1).Elements<TableCell>().ElementAt(1).Append(new Paragraph(new Run(new Text("new test"))));
                }
            }
            catch (Exception ex) {  }
        }
© www.soinside.com 2019 - 2024. All rights reserved.