原文:我的VSTO之路:序

VSTO是微软提供给.Net开发人员的一个接口,通过他我们可以对Office程序做一些处理。但是这个接口并不尽善尽美,相比微软的很多其他产品,VSTO的稳定性并不好,相关的文档也很少。这种情况下,很多问题需要我们程序员自己去克服。我自己从08年进了现在这家公司,断断续续做VSTO开发已经快2年半了,不敢说对VSTO精通,但至少已经有了深入的解,尤其对开发中的一些Trick和一些Bug。准备写点东西记录一下这两年来的心路历程。同时也感慨于国内的VSTO文档资料实在匮乏,我自己在开发过程中走了不少弯路,希望我写的这些文档能对后来的开发者们有所帮助。

我喜欢在写文档之前先准备一个提纲,然后再往里面填充,所以在序里面,我先列一下我准备写的主要内容

  1. VSTO基本知识
    1. 创建项目
    2. 添加Ribbon
    3. 添加Task Panel
  2. Word基本知识
    1. Word Object Model 介绍 (Application、Document、Range、Selection和Bookmark)
      1. Application对象
      2. Document对象
      3. Range对象
      4. Selection对象
      5. Bookmark对象
    2. 插件:自定义Search面板
  3. Word深入开发
    1. 修改右键菜单
    2. 往文档中插入内容
    3. 添加超链接、书签
    4. 基于选中内容,显示悬浮框
    5. 遗留问题
  4. Outlook相关知识
    1. Outlook的基本结构
    2. 获得Outlook的目录树
    3. 捕获新邮件和邮件移动
    4. 修改Outlook右键菜单
    5. 通过VSTO新建邮件或联系人
    6. Outlook Form Region的使用,以及扩展Outlook联系人的内容
    7. 遗留问题
  5. Excel相关知识
    1. 修改Excel中,Cell的内容和样式
    2. 获得Excel中所有内容,即有输入的Cell
    3. 修改Excel右键菜单
    4. 遗留问题
  6. Smart Tag
    1. VSTO Smart Tag的开发
    2. COM Smart Tag的开发
  7. 发布VSTO程序
    1. Click once方式
    2. 安装包方式
  8. VSTO之外
    1. 对于C#中对于Excel数据的导入与导出

*这些文档除了Smar Tag是针对Office 2007的之外,其他的内容基本适用于Office 2007~Office 2010。另外,抗议一下微软,居然在Office 2010中废除了Smart Tag大部分的功能。

**在博客园里面,没有找到Office的相关分类,只能先放到WinForm区了

我的VSTO之路:序的更多相关文章

  1. 我的VSTO之路(二):VSTO程序基本知识

    原文:我的VSTO之路(二):VSTO程序基本知识 开始之前,首先我介绍一下我的开发环境:VS2010 + Office 2010,是基于.Net framework 4.0和VSTO 4.0.以下的 ...

  2. C蛮的全栈之路-序章 技术栈选择与全栈工程师

    目录 C蛮的全栈之路-序章 技术栈选择与全栈工程师C蛮的全栈之路-node篇(一) 环境布置C蛮的全栈之路-node篇(二) 实战一:自动发博客 博主背景 985院校毕业,至今十年C++开发工作经验, ...

  3. 我的VSTO之路(五):Outlook初步开发之联系人扩展

    原文:我的VSTO之路(五):Outlook初步开发之联系人扩展 上一讲我们完成对Word的介绍,文本开始,我将着重介绍Outlook.Outlook是微软Office中一个非常实用的工具,尤其在一个 ...

  4. 我的VSTO之路(四):深入介绍Word开发

    原文:我的VSTO之路(四):深入介绍Word开发 在上一篇文章中,我介绍了Word的对象模型和一些基本开发技巧.为了更好的介绍Word插件开发,我为本文制作了一个Word书签的增强版,具体功能是让用 ...

  5. 我的VSTO之路(三):Word基本知识

    原文:我的VSTO之路(三):Word基本知识 在前一篇文章中,我初步介绍了如何如何开发一个VSTO程序,在本文中,我将进一步深入介绍Word的插件开发.Word是一个大家在日常工作中一直接触的文档工 ...

  6. 小白的python之路 序

    计算机专科毕业,.net开发已有8年有余,中途断断续续,似懂非懂,积累了一些经验知识,但是不求甚解,属于那种一瓶不满半瓶子晃荡,这么一个状态. 主要从事web开发,涉及一些前端jq等,还有接口开发,搜 ...

  7. C蛮的全栈之路-node篇(二) 实战一:自动发博客

    目录 C蛮的全栈之路-序章 技术栈选择与全栈工程师C蛮的全栈之路-node篇(一) 环境布置C蛮的全栈之路-node篇(二) 实战一:自动发博客 ---------------- 我是分割线 ---- ...

  8. C蛮的全栈之路-node篇(一) 环境布置

    目录 C蛮的全栈之路-序章 技术栈选择与全栈工程师C蛮的全栈之路-node篇(一) 环境布置C蛮的全栈之路-node篇(二) 实战一:自动发博客 ---------------- 我是分割线 ---- ...

  9. 【重走Android之路】【开篇】序

    [重走Android之路][开篇]   [序]         本人Nodin,偶尔也叫MoNodin,朋友们都喜欢叫我丁,还有个笔名叫陌上幽人,文艺时叫恋风,发奋时叫不肯腐烂的土壤...也许你觉得我 ...

随机推荐

  1. 动态添加子视图 UIView 的正确方法

    很多时候哥比较喜欢用代码添加视图,特别是要同时加很多UIView时,而且跟 xib 比起来代码更容易管理,在多人的项目中代码不容易 conflict. 但小牛哥最近发现很多新人都不太清楚正确的使用方法 ...

  2. Eclipse打开当前所属文件所在windows中的文件夹

    1.Eclipse设置 依次展开如下菜单:    Run ---- External Tools ---- External Tools Configurations    在 program 下面新 ...

  3. Java基础知识强化之集合框架笔记30:集合之泛型的引入

    1. 泛型的引入: (1)首先我们看看下面这一段代码,如下: package cn.itcast_01; import java.util.ArrayList; import java.util.It ...

  4. 使用SqlAlchemy时如何方便的取得dict数据、dumps成Json

    使用Sqlalchemy可以方便的从数据库读取出python对象形式的数据(吐槽:说实话对象形式也没多方便,还不如我之前从关系型数据库直接读取出dict形式的数据用起来方便,具体参见我以前的文章htt ...

  5. codevs1380 没有丧尸的舞会

    /* 树形DP 而然我并不知道树在哪(....) f[x][0]表示x节点不参加舞会 以x为根的子树的最优解 f[x][1]表示x节点参加舞会 以x为根的子树的最优解 方程为:(so为x的儿子 so要 ...

  6. CakePHP之Model

    模型 模型在应用程序中是作为业务层而存在的(怎么感觉是数据层......).这就意味着,模型应当负责管理几乎所有涉及数据的事情,其合法性,以及你的业务领域中数据在工作流程中的演化和互动 . 通常模型类 ...

  7. Java 406

    项目改名之后, 项目上传后,报错,406,可是项目本地是可以跑起来的, 联系管理员,管理员改了个/etc/httpd/conf/workers2.properties 里面,将本次的项目加入进去就OK ...

  8. Android开发手记(27) Java多线程的操作

    Java中常用的有关线程的操作有,判断线程是否启动.线程强制执行.线程休眠.线程中断.线程让步.线程同步等.下面就一一举例. 首先,我们新建一个MyThread类实现Runnable接口.基于此接口进 ...

  9. java String对象的创建(jvm).

    本人目前也开始学习虚拟机,在java中,有很多种类型的虚拟机,其中就以sum公司(当然现在已经是oracle了)的虚拟机为例,介绍可能在面试的时候用到的,同时对自己了解String有很大帮助,这里仅仅 ...

  10. RAC配置、安装

    RAC  配置及安装 2012年12月30日 星期日 21:49 ******************************************************************* ...