实现环境: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