当前位置:编程学习 > XML/UML >>

用OpenXml在文档的尾部添加一个Rich Text Content Control/Plain Text Content Contro

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

[csharp]
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.Packaging; 
using DocumentFormat.OpenXml.Wordprocessing; 
 
namespace OpenXmlWordSdtBlock 

    public partial class Form1 : Form 
    { 
        public Form1() 
        { 
            InitializeComponent(); 
        } 
 
        private void button1_Click(object sender, EventArgs e) 
        { 
            OpenFileDialog objOpenFileDialog = new OpenFileDialog(); 
            objOpenFileDialog.Filter = "Word Document (*.docx)|*.docx"; 
            objOpenFileDialog.ShowDialog(); 
            string strPath = objOpenFileDialog.FileName; 
            Form2 objForm2 = new Form2(); 
            objForm2.ShowDialog(); 
            string strInsertText = objForm2.Msg; 
            if (strPath.Length > 0) 
            { 
                try 
                { 
                    using (WordprocessingDocument objWordprocessingDocument = 
                        WordprocessingDocument.Open(strPath, true)) 
                    { 
                        /*
                         * 接下来的代码将获取MainDocumentPart、Document和Body。
                         * 这些是Word文档中已经存在的结构,所以不用New。
                         */ 
                        MainDocumentPart objMainDocumentPart =  
                            objWordprocessingDocument.MainDocumentPart; 
                        Document objDocument = objMainDocumentPart.Document; 
                        Body objBody = objDocument.Descendants<Body>() 
                            .FirstOrDefault(); 
                        /*
                         * 接下来的代码将创建一个新的段落来放Rich Text Content
                         * Control。事实下所有的Content Control在OpenXml 格式中
                         * 都以SdtBlock表示。所以说这是插入一个Plain Text 
                         * Content Control也是没错的。
                         */ 
                        Paragraph objParagraph_1 = new Paragraph(); 
                        SdtBlock objSdtBlock = new SdtBlock(); 
                        SdtContentBlock objSdtContentBlock =  
                            new SdtContentBlock(); 
                        Paragraph objParagraph_2 = new Paragraph(); 
                        Run objRun = new Run(); 
                        Text objText = new Text(); 
                        if (strInsertText.Length > 0) 
                            objText.Text = strInsertText; 
                        else 
                            objText.Text = "<Null>"; 
                        objRun.Append(objText); 
        &nbs

补充:Web开发 , ASP.Net ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,