首页 > 编程知识 正文

C#操作Word书签

时间:2023-05-05 22:55:59 阅读:274631 作者:4672

C#操作Word书签

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

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

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

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

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

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

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

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

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

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的文档。

结果如下图:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。