.net开发word office addin外接程序(C#)

戏子无情 提交于 2019-12-18 13:07:33

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

本文介绍通过.Net平台的Office外接程序,实现自定义插件工具。

采用的工具:VS2017     语言:C#   目标:word2010

首先在VS中新建一个AddIn项目,基于VSTO的。

这里,我新建了一个WordAddIn2010的项目:

这时候,VS会自动生ThisAddIn这个类,让我们看看ThisAddIn里面的代码,这里我增加了一个CardPannel的用户控件:

接下里,我们再新建Ribbon可视化设计器:

这时候,我们打开刚创建的Ribbon类,可以看到如下图:

从这个图上可以看到,这个很像我们熟悉的Office的顶部外观。

接下来,我们可以利用winform的工具箱,托拽一个Button按钮控件,这里我添加了一个名为"手动组卷"的按钮。再右侧,我又添加了一个选项卡“组卷”:

里面添加了2个按钮,我在制作答题卡这个按钮上,做了一个实例程序,用于自动生成答题卡:

首先新建一个用户控件,CardPannel,外观如下图:

在“生成答题卡”按钮的单击事件,添加了生成选项的代码:

还记得刚开始的ThisAddIn这个类吗,里面有2个事件:ThisAddIn_Startup、ThisAddIn_Shutdown等,在ThisAddIn_Startup事件中,我添加了一个用户控件,就是刚新加的CardPnnel控件。

        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            this.CustomTaskPanes.Add(new CardPannel(), "点题自定义工具");//添加工具
        }

这样就把一个用户控件,添加到了外接程序中,然后在Ribbon类中,

“制作答题卡”按钮的单机事件:

        /// <summary>
        /// 制作答题卡
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>

        private void button1_Click(object sender, RibbonControlEventArgs e)
        {
            //自定义工具
            var cardPannel = Globals.ThisAddIn.CustomTaskPanes[0];
            cardPannel.DockPosition = Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionRight;
            cardPannel.Visible = true;
            cardPannel.Control.Show();

        }

点击按钮的时候,会在word的右侧,弹出工具(这里也就是我刚才定义的用户控件CardPnnel)。

接下来我们运行看看效果吧:

这里我们点击顶部组卷选项卡中的制作答题卡功能,就会在word右侧,弹出如上图右侧的自定义工具,点击生成答题卡按钮:

这只是一个简单的demo,今天就先写到这里吧!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!