用OpenXml SDK 2.0 创建一个页脚带页码的Word文档

2024-04-30 07:48

本文主要是介绍用OpenXml SDK 2.0 创建一个页脚带页码的Word文档,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实现环境:Visual Studio 2010, OpenXml SDK 2.0.50727

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;namespace OpenXmlFooterPageNumber
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){SaveFileDialog objSaveFileDialog = new SaveFileDialog();objSaveFileDialog.Filter = "Word Document (*.docx)|*.docx";objSaveFileDialog.ShowDialog();string strSavePath = objSaveFileDialog.FileName;if (strSavePath.Length > 0){using (WordprocessingDocument objWordprocessingDocument =WordprocessingDocument.Create(strSavePath, WordprocessingDocumentType.Document)){MainDocumentPart objMainDocumentPart =objWordprocessingDocument.AddMainDocumentPart();Document objDocument = new Document();objMainDocumentPart.Document = objDocument;Body objBody = new Body();SectionProperties objSectionProperties = new SectionProperties();FooterPart objFootPart = objMainDocumentPart.AddNewPart<FooterPart>();Footer objFooter = new Footer();objFootPart.Footer = objFooter;SdtBlock objSdtBlock_1 = new SdtBlock();SdtContentBlock objSdtContentBlock_1 = new SdtContentBlock();SdtBlock objSdtBlock_2 = new SdtBlock();SdtContentBlock objSdtContentBlock_2 = new SdtContentBlock();Paragraph objParagraph_1 = new Paragraph();ParagraphProperties objParagraphProperties = new ParagraphProperties();ParagraphStyleId objParagraphStyleId =new ParagraphStyleId() { Val = "Footer" };objParagraphProperties.Append(objParagraphStyleId);Justification objJustification = new Justification() { Val = JustificationValues.Right };objParagraphProperties.Append(objJustification);objParagraph_1.Append(objParagraphProperties);Run objRun_1 = new Run();Text objText_1 = new Text();objText_1.Text = "Page ";objRun_1.Append(objText_1);objParagraph_1.Append(objRun_1);Run objRun_2 = new Run();FieldChar objFieldChar_1 = new FieldChar() { FieldCharType = FieldCharValues.Begin };objRun_2.Append(objFieldChar_1);objParagraph_1.Append(objRun_2);Run objRun_3 = new Run();FieldCode objFieldCode_1 = new FieldCode() { Space = SpaceProcessingModeValues.Preserve };objFieldCode_1.Text = "PAGE ";objRun_3.Append(objFieldCode_1);objParagraph_1.Append(objRun_3);Run objRun_4 = new Run();FieldChar objFieldChar_2 = new FieldChar() { FieldCharType = FieldCharValues.Separate };objRun_4.Append(objFieldChar_2);objParagraph_1.Append(objRun_4);Run objRun_5 = new Run();Text objText_2 = new Text();objText_2.Text = "2";objRun_5.Append(objText_2);objParagraph_1.Append(objRun_5);Run objRun_6 = new Run();FieldChar objFieldChar_3 = new FieldChar() {FieldCharType = FieldCharValues.End };objRun_6.Append(objFieldChar_3);objParagraph_1.Append(objRun_6);Run objRun_7 = new Run();Text objText_3 = new Text();objText_3.Text = "of ";objRun_7.Append(objText_3);objParagraph_1.Append(objRun_7);Run objRun_8 = new Run();FieldChar objFieldChar_4 = new FieldChar() { FieldCharType = FieldCharValues.Begin };objRun_8.Append(objFieldChar_4);objParagraph_1.Append(objRun_8);Run objRun_9 = new Run();FieldCode objFieldCode_2 = new FieldCode() { Space = SpaceProcessingModeValues.Preserve };objFieldCode_2.Text = "NUMPAGES  ";objRun_9.Append(objFieldCode_2);objParagraph_1.Append(objRun_9);Run objRun_10 = new Run();FieldChar objFieldChar_5 = new FieldChar() { FieldCharType = FieldCharValues.Separate };objRun_10.Append(objFieldChar_5);objParagraph_1.Append(objRun_10);Run objRun_11 = new Run();Text objText_4 = new Text();objText_4.Text = "2";objRun_11.Append(objText_4);objParagraph_1.Append(objRun_11);Run objRun_12 = new Run();FieldChar objFieldChar_6 = new FieldChar() {FieldCharType = FieldCharValues.End };objRun_12.Append(objFieldChar_6);objParagraph_1.Append(objRun_12);objSdtContentBlock_2.Append(objParagraph_1);objSdtBlock_2.Append(objSdtContentBlock_2);objSdtContentBlock_1.Append(objSdtBlock_2);objSdtBlock_1.Append(objSdtContentBlock_1);objFooter.Append(objSdtBlock_1);string strFootrID =objMainDocumentPart.GetIdOfPart(objFootPart);FooterReference objFooterReference = new FooterReference() { Type = HeaderFooterValues.Default, Id = strFootrID };objSectionProperties.Append(objFooterReference);objBody.Append(objSectionProperties);objMainDocumentPart.Document.Append(objBody);DocumentSettingsPart objDocumentSettingPart =objMainDocumentPart.AddNewPart<DocumentSettingsPart>();objDocumentSettingPart.Settings = new Settings();Compatibility objCompatibility = new Compatibility();CompatibilitySetting objCompatibilitySetting =new CompatibilitySetting(){Name = CompatSettingNameValues.CompatibilityMode,Uri = "http://schemas.microsoft.com/office/word",Val = "14"};objCompatibility.Append(objCompatibilitySetting);objDocumentSettingPart.Settings.Append(objCompatibility);}}}}
}
相关资源: http://download.csdn.net/detail/tx_officedev/3972762

这篇关于用OpenXml SDK 2.0 创建一个页脚带页码的Word文档的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/948286

相关文章

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

SpringBoot3集成swagger文档的使用方法

《SpringBoot3集成swagger文档的使用方法》本文介绍了Swagger的诞生背景、主要功能以及如何在SpringBoot3中集成Swagger文档,Swagger可以帮助自动生成API文档... 目录一、前言1. API 文档自动生成2. 交互式 API 测试3. API 设计和开发协作二、使用

手把手教你idea中创建一个javaweb(webapp)项目详细图文教程

《手把手教你idea中创建一个javaweb(webapp)项目详细图文教程》:本文主要介绍如何使用IntelliJIDEA创建一个Maven项目,并配置Tomcat服务器进行运行,过程包括创建... 1.启动idea2.创建项目模板点击项目-新建项目-选择maven,显示如下页面输入项目名称,选择

基于C#实现将图片转换为PDF文档

《基于C#实现将图片转换为PDF文档》将图片(JPG、PNG)转换为PDF文件可以帮助我们更好地保存和分享图片,所以本文将介绍如何使用C#将JPG/PNG图片转换为PDF文档,需要的可以参考下... 目录介绍C# 将单张图片转换为PDF文档C# 将多张图片转换到一个PDF文档介绍将图片(JPG、PNG)转

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

顺序表之创建,判满,插入,输出

文章目录 🍊自我介绍🍊创建一个空的顺序表,为结构体在堆区分配空间🍊插入数据🍊输出数据🍊判断顺序表是否满了,满了返回值1,否则返回0🍊main函数 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~ 🍊自我介绍   Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”