zoukankan      html  css  js  c++  java
  • VSTO Office二次开发对PowerPoint功能简单测试

    最近碰到使用VSTO技术对Office做插件开发的问题,发现网上的资源很少,大部分都是对于Word\Excel\Outlook的相关操作,发现不少是用VB语言写的VBA开发,对于PPT的操作不是很多,资源很少,还好MSDN还有一些资源可以查一下,但有些慢些了,简单给大家分享一下。使用的开发环境VS2010,运行程序office 2007

    一、简单测试程序
    1.创建PPT应用程序级外接程序(C#程序)
    文件-》新建项目-》选择“Visual C#”-》选择“Office”-》选择“2010或2007”-》选择“PowerPoint 2007 外接程序”或“PowerPoint 2010 外接程序”(这里用的是2007测试的)-》设置名称、位置、解决方案名称,点击“确定”,则创建完毕。

    2.简单测试:实现在每页PPT中显示文本
    代码如下:

    //添加自定义文本信息
            private void AddText()
            {
                //事件委托绑定(对PPT中添加代码控制文本)
                this.Application.PresentationNewSlide += new PowerPoint.EApplication_PresentationNewSlideEventHandler(Application_PresentationNewSlide);
            }
    
            //此为Application对象的PresentationNewSlide事件
            //功能:当用户将新幻灯片添加到活动演示文稿时,此事件处理程序会将文本框添加到新幻灯片的顶部,然后向文本框中添加一些文本。
            void Application_PresentationNewSlide(PowerPoint.Slide Sld)
            {
                //这里的Application表示 PowerPoint 的当前实例。
                //这里的参数Sld,表示新幻灯片的Slide对象。
                PowerPoint.Shape textBox = Sld.Shapes.AddTextbox(Office.MsoTextOrientation.msoTextOrientationHorizontal, 0, 0, 500, 50);
                textBox.TextFrame.TextRange.InsertAfter("This Text Was Added By Using Code!");
            }
    
        private void ThisAddIn_Startup(object sender, System.EventArgs e)
            {
            //注意:在ThisAddIn_Startup中调用对应的方法,
                AddText();//添加自定义文本信息
            }

    3.运行程序查看效果
    F5运行程序,查看效果。
    会发现在打开一个office 2007的PPT文件都会有这个效果。查看一些PowerPoint选项左侧的“加载项”中就可以找到对应的加载项。
    注意:有时候,没有对应的效果,可能是PPT的加载项中把你创建的COM加载项禁用了。只需要启用对应的加载项即可。
    启用组件操作:在管理中选择“禁用项目”,点击“转到...”,会弹出禁用项目对话框,找到你的组件启用即可。
    注意:如果不需要这些自己定义的组件功能,可以使用“清理”解决方案,将其移除。

    二、简单自定义任务窗格
    1.创建自定义窗格
    在已创建的外接项目中右击解决方案添加新建项,选择“用户控件”,设置名称,点击添加,即创建一个用户控件。
    用户控件很像是对于WinForm窗体的操作在工具箱中,拖拽你需要的按钮,实现对应的功能。
    这里做一些简单的效果测试,加一个按钮,点击事件弹出"Hello TaskPanel!"
    2.将创建的用户控件关联PPT组件
    在“ThisAddIn.cs”文件中,添加如下代码:

    /// <summary>
            /// 添加自定义的Task Pane
            /// </summary>
            private void AddTaskPane()
            {
            //自定义用户控件名称(即自定任务窗格类)
                UCTaskPane taskPane = new UCTaskPane();
            //将用户控件添加到 CustomTaskPaneCollection集合中
                CustomTaskPane myCustomTaskPane  = this.CustomTaskPanes.Add(taskPane, "My Task Pane");
                myCustomTaskPane.Width = 200;//设置自定义任务窗格的宽度
                myCustomTaskPane.Visible = true;//设置其可见
            }

    在ThisAddIn_Startup中调用该方法。
    3.运行程序查看效果
    F5运行程序,查看效果。通常在右侧会出现自己创建的任务窗格,如果不加设定,它的位置是可以随便在边缘放置的顶部、底部、左侧、右侧。
    注意:这里的任务窗格可以根据具体的业务需要在上面实现对应的功能;在一个组件中还可以创建多个任务窗格,一起使用。

    三、简单可视化功能区使用
    1.创建Ribbon可视化功能区 在已创建的外接项目中右击解决方案添加新建项,选择“功能区(可视化设计器)”,点击“添加”,即创建成功。
    2.对于Ribbon功能区的简单使用 默认会创建一个tab页,如果不修改其Label将显示“加载项”,如果修改将显示你修改的信息内容。可以在工具箱中的Office功能区控件,选择你所需要的控件,也可以使用其他的一些控件。通常将这些控件放在一个Group容器中,形成简单的功能集合。(像是WinForm编程,拖拽控件实现对应的功能) 这里简单的测试一下,一个简单的Group容器,放一个Button按钮,实现其点击事件,弹出“Hello Ribbon!”。(也可以继续添加其他的控件测试其功能)
    3.运行程序查看效果 F5运行程序,查看效果。在顶部就会看到自定义的tab页,及其tab内的按钮,实现对原有office功能的扩展。

  • 相关阅读:
    Oracle 推出 ODAC for Entity Framework 和 LINQ to Entities Beta版
    Entity Framework Feature CTP 5系列文章
    MonoDroid相关资源
    MSDN杂志上的Windows Phone相关文章
    微软学Android Market推出 Web Windows Phone Marketplace
    使用 Visual Studio Agent 2010 进行负载压力测试的安装指南
    MonoMac 1.0正式发布
    Shawn Wildermuth的《Architecting WP7 》系列文章
    使用.NET Mobile API即51Degrees.mobi检测UserAgent
    MongoDB 客户端 MongoVue
  • 原文地址:https://www.cnblogs.com/SanMaoSpace/p/2914721.html
Copyright © 2011-2022 走看看