openxml 中 word 文档的结构是如下图:

其中,页眉是 header,属于headerpart 部件,页脚是footer,属于footerpart 部件,图上还有其他的东西,之后会一一介绍。这些部件都属于MainDocumentPart 部件。之前讲过了 一个包(package)就是一个word文件。

<maindoucmentpart>

<headerpart>

<header>..........其他东西.......</header>

</headerpart>

<document>

<body>.........</body>

</document>

<footerpart>

<footer>........</footer>

</foooterpart>

</maindoucmentpart>

大概是这样子的关系。

页眉和页脚的对应的,页眉有三种,1.首页的页面(选择首页不同的话,这个会显示) 2.偶数页页面(选择奇偶页不同的话,这个会显示),3.默认页面(什么都不选,默认显示这个)。页脚也有三种与页面对应。

添加页眉,页脚的代码如下:

  using (WordprocessingDocument packaging = WordprocessingDocument.Create("test.docx", WordprocessingDocumentType.Document))             {                 MainDocumentPart maindocumentpart = packaging.AddNewPart<MainDocumentPart>("application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml", "r001");

                 Document doc = new Document();                 doc.Body = new Body();                 maindocumentpart.Document = doc;                 maindocumentpart.Document.Body.AppendChild<Paragraph>(new Paragraph(new Run(new Text() { Text = "测试" })));

                 #region 页眉                 Header header1 = new Header(new Paragraph(new Run(new Text() { Text = "header1" })));                 Header header2 = new Header(new Paragraph(new Run(new Text() { Text = "header2" })));                 Header header3 = new Header(new Paragraph(new Run(new Text() { Text = "header3" })));                 maindocumentpart.AddNewPart<HeaderPart>("application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml", "r002").Header = header1;                 maindocumentpart.AddNewPart<HeaderPart>("application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml", "r003").Header = header2;                 maindocumentpart.AddNewPart<HeaderPart>("application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml", "r004").Header = header3;                 #endregion

                 #region 页脚                 Footer footer1 = new Footer(new Paragraph(new Run(new Text() { Text = "footer1" })));                 Footer footer2 = new Footer(new Paragraph(new Run(new Text() { Text = "footer2" })));                 Footer footer3 = new Footer(new Paragraph(new Run(new Text() { Text = "footer3" })));                 maindocumentpart.AddNewPart<FooterPart>("application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml", "r005").Footer = footer1;                 maindocumentpart.AddNewPart<FooterPart>("application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml", "r006").Footer = footer2;                 maindocumentpart.AddNewPart<FooterPart>("application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml", "r007").Footer = footer3;                 #endregion                 /*设置 页眉,页脚和页面关系*/                 SectionProperties sp = new SectionProperties(                  new HeaderReference() { Id = "r002", Type = HeaderFooterValues.First },                  new HeaderReference() { Id = "r003", Type = HeaderFooterValues.Even },                  new HeaderReference() { Id = "r004", Type = HeaderFooterValues.Default },                  new FooterReference() { Id = "r005", Type = HeaderFooterValues.First },                  new FooterReference() { Id = "r006", Type = HeaderFooterValues.Even },                  new FooterReference() { Id = "r007", Type = HeaderFooterValues.Default });                 maindocumentpart.Document.Body.AppendChild<SectionProperties>(sp);             }

openxml(二) 添加页眉,页脚的更多相关文章

  1. C#word(2007)操作类--新建文档、添加页眉页脚、设置格式、添加文本和超链接、添加图片、表格处理、文档格式转化

    转:http://www.cnblogs.com/lantionzy/archive/2009/10/23/1588511.html 1.新建Word文档 #region 新建Word文档/// &l ...

  2. C# 如何添加Excel页眉页脚(图片、文字、奇偶页不同)

    简介 我们可以通过代码编程来对Excel工作表实现很多操作,在下面的示例中,将介绍如何来添加Excel页眉.页脚.在页眉处,我们可以添加文字,如公司名称.页码.工作表名.日期等,也可以添加图片,如LO ...

  3. 用什么方法给PDF添加页眉页脚

    我们所看到的书本中都会设置好有页眉页脚,那么电子书想要添加页眉页脚要怎么操作呢,用什么方法可以在PDF中添加页眉页脚呢,今天就为大家分享一下,如何在电子文件中添加页眉页脚,想知道的小伙伴们就一起来看看 ...

  4. ★itext-为pdf文件添加页眉页脚 | 3步完成 |

    由于上一篇自定义生成pdf的功能需求又增加了,需要加上页码.所以本博客诞生了~ 1. 通过继承PdfPageEventHelper类,实现需要实现的方法 import com.lowagie.text ...

  5. itext 生成pdf文件添加页眉页脚

    原文来自:https://www.cnblogs.com/joann/p/5511905.html 我只是记录所有jar版本,由于版本冲突及不兼容很让人头疼的,一共需要5个jar, 其中itextpd ...

  6. iText + Freemarker实现pdf的导出,支持中文、css以及图片,页眉页脚,页眉添加图片

    本文为了记录自己的实现过程,具体的实现步骤是参考博文 https://www.cnblogs.com/youzhibing/p/7692366.html 来实现的,只是在他的基础上添加了页眉页脚及页眉 ...

  7. ABBYY FineReader 15 如何为PDF文档添加页眉页脚

    页眉.页脚是文档页面顶部或底部重复出现的文本信息.很多用户会习惯在文档页面的顶部与底部区域添加页眉.页脚来展现页码.文档标题.作者姓名.品牌名称等附加信息.而ABBYY FineReader 15(W ...

  8. 【Itext】7步制作Itext5页眉页脚pdf实现第几页共几页

    itext5页眉页脚工具类,实现page x of y 完美兼容各种格式大小文档A4/B5/B3,兼容各种文档格式自动计算页脚XY轴坐标 鉴于没人做的这么细致,自己就写了一个itext5页眉页脚工具类 ...

  9. word页眉页脚 首页 索引 正文各不同的处理方法

    1.在目录和正文之间,加入分隔符——分节符——下一页,然后再添加页眉页脚,然后再添加索引:

  10. C# 操作Word页眉页脚——奇偶页/首页不同、不连续设置页码、复制页眉页脚、锁定页眉页脚、删除页眉页脚

    前言 本文是对Word页眉页脚的操作方法的进一步的阐述.在“C# 添加Word页眉页脚.页码”一文中,介绍了添加简单页眉页脚的方法,该文中的方法可满足于大多数的页眉页脚添加要求,但是对于比较复杂一点的 ...

随机推荐

  1. nes 红白机模拟器 第3篇 游戏手柄测试 51 STM32

    手柄使用的是 CD4021 ,datasheet 上说支持 3V - 15V . 因为手柄是 5V 供电,2440 开发板上是GPIO 3.3V 电平,STM32 GPIO 也是 3.3V (也兼容5 ...

  2. iOS检测用户截屏并获取所截图片

    iOS检测用户截屏并获取所截图片 微信可以检测到用户截屏行为(Home + Power),并在稍后点击附加功能按钮时询问用户是否要发送刚才截屏的图片,这个用户体验非常好.在iOS7之前, 如果用户截屏 ...

  3. spring " expected single matching bean but found 2" 问题一例。

    初入java,使用spring时遇到一个问题,左边是一个接口和实现.右边是service和实现. @Service@Transactional(rollbackFor = Exception.clas ...

  4. Dell DRAC的重启方法

    SSH 22连接后:racadm racreset

  5. 移动端接口:java写get方式访问数据(springmvc+spring。。。)

    很多时候,一个问题想明白,找对点了再去问,这样被问的人也知道怎么给你讲,你也听的明白. 就比如做移动端接口,上去就问 怎么弄接口呀,其实是没找到主要的点上,所以不知道怎么弄,那个点就是手机接口是干嘛的 ...

  6. Android项目架构之业务组件化

    前言: 从个人经历来说的话,从事APP开发这么多年来,所接触的APP的体积变得越来越大,业务的也变得越来越复杂,总来来说只有一句话:这是一个APP臃肿的时代!所以为了告别APP臃肿的时代,让我们进入一 ...

  7. android 命名 数组 所有国家 String[] COUNTRIES

    static final String[] COUNTRIES = new String[] { "Afghanistan", "Albania", " ...

  8. [转]VB Winsock 控件TCP与UDP连接实例

    [-] 可能的用途 选择通讯协议 协议的设置 确定计算机的名称 TCP 连接初步 接受多个连接请求 UDP 初步 关于 Bind 方法   利用 WinSock 控件可以与远程计算机建立连接,并通过用 ...

  9. OpenLayers添加点【php请求MySQL数据库返回GeoJSON数据】

    php请求MySQL数据库返回GeoJSON数据的实现方法请参见: http://www.cnblogs.com/marost/p/6234514.html OpenLayers[v3.19.1-di ...

  10. NPOI分层导出

    using NPOI.HSSF.UserModel; using NPOI.POIFS.FileSystem; using org.in2bits.MyXls; using System; using ...