C#操作Word书签

C#操作Word书签

近期做一个项目,类似于自助服务中心得那种机器,其中一个功能是自助打样一些证明。

举个栗子,离职证明,里边必须要填写姓名,百度了一番,发现用书签操作比较方便(当然学的比较浅,Word也玩的不多,不知道有没有其他方式),后边这个链接只是一个实现的代表,我就是链接,当然是为了免费,调用的微软自己的,第三方库咱就不说了,具体实现可以自己看。但是这有个问题是,你得先安装一个office,我安装的的是2016版本,他的那个方法我不能用,原因是我没有这个方法,见下图,我已经圈出来了

C#操作Word书签_第1张图片

我这里用另一种方式实现了。

首先要按住office2016版本(其他版本我没有试),然后再你的工程里安装下图表的序号添加引用。

C#操作Word书签_第2张图片

然后会在引用这个地方出现Microsoft.Office.Interop.Word就对了,如果没有检查一下,你是不是在上一步添加错了,然后重新添加。

然后你需要准备一个Word文档,随便写点啥都信,但是你得设个标签,举个栗子哈!

C#操作Word书签_第3张图片

第一步选中以后要代替的字符(我这里是带下划线的空格,以后用程序改过来也会带下划线),第二步单击插入,第三步单击书签。然后会出现下面的这个框,那些书签是我以前添加的,多试几次添加书签你就知道怎么添加了。

C#操作Word书签_第4张图片

这个时候你就可以保存这个文档了,这个文档就是模板喽。

然后就是程序里的事了。直接贴代码。

        private void buttonCopyAndEdit_Click(object sender, EventArgs e)
        {
            object oMissing = System.Reflection.Missing.Value;
            Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
            Microsoft.Office.Interop.Word.Document wordDoc = new Microsoft.Office.Interop.Word.Document();
            wordApp.DisplayAlerts = Microsoft.Office.Interop.Word.WdAlertLevel.wdAlertsNone;
            wordDoc.Activate();
            try
            {
                wordDoc = wordApp.Documents.Open(textBoxDocEditPath.Text);
                foreach (Microsoft.Office.Interop.Word.Bookmark item in wordDoc.Bookmarks)
                {
                    if (item.Name == "姓名")
                    {
                        Microsoft.Office.Interop.Word.Range rang = wordDoc.Range(item.Start, item.End);
                        rang.Text = "????";
                    }
                    if (item.Name == "身份证")
                    {
                        Microsoft.Office.Interop.Word.Range rang = wordDoc.Range(item.Start, item.End);
                        rang.Text = "012345678901234567";
                    }
                }
                wordApp.Visible = false;
                string path = Path.GetDirectoryName(textBoxDocEditPath.Text);
                wordDoc.SaveAs(path + "\\离职证明.doc");
                wordDoc.Close();
                wordApp.Quit();
            }
            catch (Exception e1)
            {
                MessageBox.Show("请重试\n {0}", e1.Message);
                wordDoc.Close();
                wordApp.Quit();
            }
        }

这是个按钮事件。textBoxDocEditPath.Text这个就是模板的存放路径,嗯,显示的是绝对路径。最终会在模板存放的文件夹里重新保存一个名为离职证明.doc的文档。

结果如下图:

C#操作Word书签_第5张图片

你可能感兴趣的:(调试笔记,c#,openoffice)