.NET 使用书签如何对Word模板进行操作

1. 建立一个word;

2. 设置标签;

3. 另存为Word2003/2007模板;

4. 把模板添加到项目中去;

5. 添加引用;

6. 在后台添加引用;

7. 代码实现.

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 Microsoft.Office.Interop.Word;
using System.IO;


namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        /*=================================================*/
        Microsoft.Office.Interop.Word.Document doc;
        Microsoft.Office.Interop.Word.Application app;
        private static string TemplateFile1 = System.Windows.Forms.Application.StartupPath + "..\\..\\..\\MyNodel\\申请表.dot";
        string Imagefile = "";
        /*=================================================*/
        public Form1()
        {
            InitializeComponent();
        }


        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog myopen = new OpenFileDialog();
            if (myopen.ShowDialog() == DialogResult.OK)
            {
                Imagefile = System.Windows.Forms.Application.StartupPath + "\\" + DateTime.Now.ToString("yyyyMMddhhss") + ".jpg";
                File.Copy(myopen.FileName, Imagefile);
                Image _image = Image.FromFile(Imagefile);
                this.pictureBox1.Image = _image;
            }
        }


        private void button2_Click(object sender, EventArgs e)
        {
            foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcessesByName("WINWORD"))
            {
                p.Kill();
            }
            doc = new Microsoft.Office.Interop.Word.Document();
            app = new Microsoft.Office.Interop.Word.Application();
            //模板路径
            string TemplateFile = TemplateFile1;
            object Obj_FileName = TemplateFile1;
            object Visible = false;
            object ReadOnly = false;
            object missing = System.Reflection.Missing.Value;
            //C#操作Word书签
            //打开文件  
            doc = app.Documents.Open(ref Obj_FileName,
            ref missing, ref ReadOnly, ref missing,
            ref missing, ref missing, ref missing, ref missing,
            ref missing, ref missing, ref missing, ref Visible,
            ref missing, ref missing, ref missing,
            ref missing);
            doc.Activate();
            //标签
            object bookMark = "";
            if (app.ActiveDocument.Bookmarks.Exists("MyID") == true)
            {
                bookMark = "MyID";
                app.ActiveDocument.Bookmarks.get_Item
                    (ref bookMark).Range.Text = this.XueH.Text;
            }
            if (app.ActiveDocument.Bookmarks.Exists("MyName") == true)
            {
                bookMark = "MyName";
                app.ActiveDocument.Bookmarks.get_Item
                    (ref bookMark).Range.Text = this.XingM.Text;
            }
            if (app.ActiveDocument.Bookmarks.Exists("MyPhoto") == true)
            {
                SaveImage("MyPhoto", Imagefile);
            }
           
            //C#操作Word书签
            object IsSave = true;
            doc.Close(ref IsSave, ref missing, ref missing);


            SaveFileDialog _save = new SaveFileDialog();
            _save.InitialDirectory = "C:\\";
            _save.Filter = "*.doc|*.*";
            _save.FileName = "新建文档.doc";
            if (_save.ShowDialog() == DialogResult.OK)
            {
                SaveAS(_save.FileName);
            }
        }
        /// <summary>
        /// 文档另存为
        /// </summary>
        /// <param name="FileName">保存的文件名名称</param>
        /// <returns></returns>
        public bool SaveAS(string FileName)
        {
            bool _bool = false;
            try
            {
                //模板路径
                string TemplateFile = TemplateFile1;
                //生成word文档            
                string FileName1 = FileName;
                File.Copy(TemplateFile, FileName);
                _bool = true;
                return _bool;
            }
            catch
            {
                return _bool;
            }
        }
        public void SaveImage(string Markname, string ImageName)
        {
            //模板路径
            object TemplateFile = TemplateFile1;
            object Nothing = System.Reflection.Missing.Value;
            //创建一个名为wordApp的组件对象
            Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();


            //定义该插入图片是否为外部链接
            object linkToFile = true;
            //定义插入图片是否随word文档一起保存
            object saveWithDocument = true;
            //打开word文档
            Microsoft.Office.Interop.Word.Document doc = wordApp.Documents.Open(ref TemplateFile,
                ref Nothing, ref Nothing, ref Nothing,
               ref Nothing, ref Nothing, ref Nothing, ref Nothing,
               ref Nothing, ref Nothing, ref Nothing, ref Nothing,
               ref Nothing, ref Nothing, ref Nothing, ref Nothing);
            try
            {
                //标签
                object bookMark = Markname;
                //图片
                string replacePic = ImageName;
                if (doc.Bookmarks.Exists(Convert.ToString(bookMark)) == true)
                {
                    //查找书签
                    doc.Bookmarks.get_Item(ref bookMark).Select();


                    //设置图片位置
                    wordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
                    //在书签的位置添加图片
                    InlineShape inlineShape = wordApp.Selection.InlineShapes.AddPicture(replacePic,
                        ref linkToFile, ref saveWithDocument, ref Nothing);
                    //设置图片大小
                    inlineShape.Width = 85;
                    inlineShape.Height = 100;
                    //app.ActiveDocument.Bookmarks.get_Item
                    //    (ref bookMark).Range.Text = "";
                    doc.Save();
                    //C#操作Word书签
                    object IsSave = false;
                    doc.Close(ref IsSave, ref Nothing, ref Nothing);
                }
                else
                {
                    doc.Close(ref Nothing, ref Nothing, ref Nothing);
                }
            }
            catch
            {
            }
        }
    }
}

8.设计界面如下:


已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页