云顶娱乐平台 62

【云顶娱乐平台】VSTO 学习笔记(十三)谈谈VSTO项目的部署

回答:

关于Excel催化剂作者

  • Office应用程序:VSTO公布了对象,使之更容易编写Office应用程序。包括扩充应用程序和处理应用程序使用的数据的对象。要理解的重点之一是Word和Excel编辑器提供了Word或Excel文档视图。使用这些编辑器,可以编辑和格式文档,就像直接在Office应用程序中操作一样。

 

您好,这里是E图表述为您解答。

云顶娱乐平台 1

是实话,这部分内容不太懂。但是凭借其他我会的语言来说,感觉离不开这3个内容的其中一个。试一下吧,如果没有帮到你,望见谅。

回答:

多多使用插件才是王道,不一定非要用原始Excel的功能复杂实现

云顶娱乐平台 2

关于Excel催化剂

Excel催化剂先是一微信公众号的名称,后来顺其名称,正式推出了Excel插件,插件将持续性地更新,更新的周期视本人的时间而定争取一周能够上线一个大功能模块。Excel催化剂插件承诺个人用户永久性免费使用!

Excel催化剂插件使用最新的布署技术,实现一次安装,日后所有更新自动更新完成,无需重复关注更新动态,手动下载安装包重新安装,只需一次安装即可随时保持最新版本!

Excel催化剂插件下载链接:

因插件使用VSTO开发技术完成,插件的安装需要电脑满足相关的环境配置才能运行,且需可连接外网的方式实现自动更新机制,若下载安装过程中有任何疑问或需要离线版安装等,尽量不单独私聊询问,加QQ群可高效解决(群内已汇集了VSTO开发、Powerbi技术、Sqlserver商业智能等方面的国内顶尖大牛人物,进群的好处不用多说了)

取名催化剂,因Excel本身的强大,并非所有人能够立马享受到,大部分人还是在被Excel软件所虐的阶段,就是头脑里很清晰想达到的效果,而且高手们也已经实现出来,就是自己怎么弄都弄不出来,或者更糟的是还不知道Excel能够做什么而停留在不断地重复、机械、手工地在做着数据,耗费着无数的青春年华岁月。所以催生了是否可以作为一种媒介,让广大的Excel用户们可以瞬间点燃Excel的爆点,无需苦苦地挣扎地没日没夜的技巧学习、高级复杂函数的烧脑,最终走向了从入门到放弃的道路。

最后Excel功能强大,其实还需树立一个观点,不是所有事情都要交给Excel去完成,也不是所有事情Excel都是十分胜任的,外面的世界仍然是一个广阔的世界,Excel只是其中一枚耀眼的明星,还有其他更多同样精彩强大的技术、工具等。*Excel催化剂也将借力这些其他技术,让Excel能够发挥更强大的爆发!

关于Excel催化剂作者

姓名:李伟坚,从事数据分析工作多年(BI方向),一名同样在路上的学习者。技术路线从一名普通用户,通过Excel软件的学习,从此走向数据世界,非科班IT专业人士。历经重重难关,终于在数据的道路上达到技术平原期,学习众多的知识不再太吃力,同时也形成了自己的一套数据解决方案(数据采集、数据加工清洗、数据多维建模、数据报表展示等)。

擅长技术领域:Excel等Office家族软件、VBA&VSTO的二次开发、Sqlserver数据库技术、Sqlserver的商业智能BI技术、Powerbi技术、云服务器布署技术等等。

2018年开始职业生涯作了重大调整,从原来的正职工作,转为自由职业者,暂无固定收入,暂对前面道路不太明朗,苦重新回到正职工作,对Excel催化剂的运营和开发必定受到很大的影响(正职工作时间内不可能维护也不可能随便把工作时间内的成果公布于外,工作外的时间也十分有限,因已而立之年,家庭责任重大)。

和广大拥护者一同期盼:Excel催化剂一直能运行下去,我所惠及的群体们能够给予支持(多留言鼓励下、转发下朋友圈推荐、小额打赏下和最重点的可以和所在公司及同行推荐推荐,让我的技术可以在贵司发挥价值,实现双赢(初步设想可以数据顾问的方式或一些小型项目开发的方式合作)。)

回答:

这种工作簿打开密码忘记的情况,只能使用字典爆破方式。

送你软件一个:

Office Password Recovery

注册码这些百度应该就可以找到了。主要还是密码字典的选择。

祝君好运!

取名催化剂,因Excel本身的强大,并非所有人能够立马享受到,大部分人还是在被Excel软件所虐的阶段,就是头脑里很清晰想达到的效果,而且高手们也已经实现出来,就是自己怎么弄都弄不出来,或者更糟的是还不知道Excel能够做什么而停留在不断地重复、机械、手工地在做着数据,耗费着无数的青春年华岁月。所以催生了是否可以作为一种媒介,让广大的Excel用户们可以瞬间点燃Excel的爆点,无需苦苦地挣扎地没日没夜的技巧学习、高级复杂函数的烧脑,最终走向了从入门到放弃的道路。

 

namespace ExcelUDF
{
    [Guid(“E72F44C7-DD4A-4FA2-BC32-4EA9925749DB”)]
    [ClassInterface(ClassInterfaceType.AutoDual)]
    [ComVisible(true)]
    public class ExcelUDF
    {
        public int Add(int a, int b)
        {
            return a + b;
        }

回答:

{!– PGC_VIDEO:{“status”: 0, “thumb_height”: 360, “thumb_url”:
“4e680002d0217556ab39”, “media_id”: 1568633237238785, “vname”:
“Excel\u8d85\u7ea7\u5de5\u5177\u7bb1-\u9ed1\u79d1\u6280\u8bb2\u89e3\uff01.mp4”,
“vid”: “985e69b262f74af39c9ce37cc1f1a644”, “vu”:
“985e69b262f74af39c9ce37cc1f1a644”, “neardup_id”: 15226044166391451695,
“sp”: “toutiao”, “vposter”:
“”, “external_covers”:
[{“mimetype”: “webp”, “source”: “dynpost”, “thumb_height”: 360,
“thumb_url”: “4cc500075be84843a989”, “thumb_width”: 640}],
“thumb_width”: 640, “item_id”: 6499364198701597197, “video_size”:
{“high”: {“h”: 480, “subjective_score”: 0, “w”: 854, “file_size”:
5105492}, “ultra”: {“h”: 720, “subjective_score”: 0, “w”: 1280,
“file_size”: 9429788}, “normal”: {“h”: 360, “subjective_score”: 0,
“w”: 640, “file_size”: 3784316}}, “duration”: 194, “user_id”:
61082342079, “group_id”: 6499364198701597197, “md5”:
“c775eeeb681465686850e28ee205eedb”, “hash_id”: 15226044166391451695}
–}

    在C# 4.0发布之前(虽然现在也没有发布),用VB开发Office比用C#方便的多,这是因为VB简化了对Office对象模型的调用方法。但是随着C# 4.0的即将发布,VB的这种”优势”将会变得愈来愈小。园子里有很多人已经写过C# 4.0的新特性,这里仅提取出针对于COM操作的改进:

2、AddIn类型

看到这些代码,敝人觉得很眼熟呀,没错了,八九不离十就是工作表单元格之类的保护了,相对于工作簿加密密码,这个都不算什么事情,本号[日常办公]专门有一篇针对这种情况的破解教程,大概原理就是把Excel表格后缀名改为rar或者zip。因为xlsx文件核心就是压缩文件,然后在压缩文件夹下面选择XL文件点开,再选择worksheets文件夹点开,譬如你保护的表示第二张表,所以我们点击进去选择sheet2.xml文件,用记事本打开,然后找到含有password的这一<>内的内容,将他删了,保存,再一路退回去,将rar改为xlsx即可。具体操作可以看的教程哦

虽然你的问题我没有解决,但希望我分享的这些小知识能对朋友们以后有用!

ref missing, ref missing, ref missing,

云顶娱乐平台 3

问题:大神能看出来密码是什么么?忘记密码了!n求助!

先把123到987的数字一列排出来,然后分列成三列,编个if公式在旁边,判断任意两列的重复数字,把有重复数字的行找出来,删掉就可以了

 

但是由于客户安装的Office版本不一,所以VSTO项目的部署问题显得尤为重要,需要考虑很多问题。

给Excel开外挂,Excel超级工具箱,最牛黑科技!

  • .NET程序集:包含中间语言(IL)代码。描述程序的二进制信息的元数据存储在内存中,是.NET程序集的一部分。除了元数据信息外,程序集也有称作Manifest的专门的文件。Manifest包含程序集当前版本的信息。

1、若客户使用的主要是Office 2003,则使用VS2008开发(.NET
3.5);若客户使用Office 2007或更新版本,则使用VS2010来开发。(.NET 4.0)

如果有朋友会这个问题,请给我留言,我一定会好好收藏的!

 

1.8、安装成功后就可以打开Debug中的Excel文件了:

云顶娱乐平台 4

 

一、待部署的项目是文档类型

3.核心代码截图

云顶娱乐平台 5

2.1、新建一个Word Add In项目:

回答:大家好,我是@EXCEL实例视频网站长@欢迎关注我的头条,每天都会分享Excel实战技巧!

 

云顶娱乐平台 6

姓名:李伟坚,从事数据分析工作多年(BI方向),一名同样在路上的学习者。技术路线从一名普通用户,通过Excel软件的学习,从此走向数据世界,非科班IT专业人士。历经重重难关,终于在数据的道路上达到技术平原期,学习众多的知识不再太吃力,同时也形成了自己的一套数据解决方案(数据采集、数据加工清洗、数据多维建模、数据报表展示等)。

 

1.9、在控制面板中可以将该VSTO项目卸载:

排列组合算法

object fileName = "Test.docx";

4.6、修改Ribbon项目属性,将 Excel设置为启动的扩展程序:

Excel催化剂插件使用最新的布署技术,实现一次安装,日后所有更新自动更新完成,无需重复关注更新动态,手动下载安装包重新安装,只需一次安装即可随时保持最新版本!

 

        private void btnDivide_Click(object sender, RibbonControlEventArgs e)
        {
            Globals.ThisAddIn.Application.ActiveCell.Formula = “=Divide()”;
        }
    }

2.电商关键字排列组合

2、网站:

大致归纳一下,主要有以下一些情况:

最后Excel功能强大,其实还需树立一个观点,不是所有事情都要交给Excel去完成,也不是所有事情Excel都是十分胜任的,外面的世界仍然是一个广阔的世界,Excel只是其中一枚耀眼的明星,还有其他更多同样精彩强大的技术、工具等。*Excel催化剂也将借力这些其他技术,让Excel能够发挥更强大的爆发!

云顶娱乐平台 7

这里可以设置需要.NET Framework 4.0:

回答:你要是这么问问题,能找出高手来,那也是醉了。。。

 

2、一般的安装顺序为:

云顶娱乐平台 8

  1. 对64位Office 2010开发的支持
  2. 折叠工具栏项目支持
  3. C# 4.0 、.net framework 4.0支持
  4. 一次针对所有用户部署Office项目
  5. 在单个包中部署多个Office项目
  6. 部署完Office项目后仍可以执行附加操作

如果是Excel x86,这样注册:

云顶娱乐平台 9

doc.SaveAs("Test.docx");

该组件包含于Visual Studio Tools For Office
运行时,因此客户端若要运行VSTO程序,还需要安装Visual Studio Tools For
Office 运行时。

问题:0到9十个数字,任意三个数字为一组,一共有多少组组合。怎么用Excel表格列出来?

C#4.0对COM交互做了下面几方面的改进:

这样在每次编译成功后就会自动注册该自定义公式。

  • 数组–下方填写要组合的序列,可以使数字或者文本

  • B列为运行后结果,空格分隔,需要修改分隔符的话,可到代码中修改

  • 取出的个数,代表最终结果每一行里包好的元素个数,

  • 组合方式,选组合就是不看结果的排列顺序,123和321只会保留123,选排列就是123和132都会算

【云顶娱乐平台】VSTO 学习笔记(十三)谈谈VSTO项目的部署。5、查看IDE窗口
Visual Studio是一款极其优秀的产品,专门为开发者设计,是开发者最常使用的开发工具之一,内置有IDE,能够使开发者使用Microsoft技术创建不同类型的应用程序。通常,IDE由源代码编辑器、编译器和调试器组成。默认情况下,Microsoft Visual Studio
IDE提供智能感知、调试、编译、访问控件、以及创建解决方案的能力。最新增强了功能区设计器、拖放控件、并为Office应用程序增强了调试功能,缩减了开发时间,提高了开发者的效率。
内置的VSTO对象模型被设计来支持.NET,许多常用的功能被打包且很好地整合了。在新版本中,诸如Word、Excel和InfoPath的目标窗口工具被直接整合到IDE界面里,帮助Office开发者无须对象模型的高级知识就能创建解决方案。对于Word 2007和Excel 2007,VSTO在Visual Studio IDE中也有可视化设计器。
云顶娱乐平台 10
上图中,可以看到Visual Studio 2008中如何显示Excel 2007可视化设计器。同样,Visual Studio 2008 IDE也提供了可视化功能区设计器,允许Office开发者使用拖放界面来设计功能区,使用标准的.NET代码与功能区交互。
云顶娱乐平台 11
上图显示Office解决方案开发里功能区的可视化设计器,通过提供拖放控件和容易访问资源,简化了功能区开发过程。同样,Visual Studio 2008简化并加速了操作窗格、指定文档的任务窗格、创建指定应用程序的自定义任务窗格以及Outlook窗体区域设计器的开发过程。

        [ComRegisterFunction]
        public static void RegisterFunction(Type type)
        {
            Registry.ClassesRoot.CreateSubKey(GetSubKeyName(type, “Programmable”));
            var key = Registry.ClassesRoot.OpenSubKey(GetSubKeyName(type, “InprocServer32”), true);
            key.SetValue(“”, Environment.SystemDirectory + @”mscoree.dll”, RegistryValueKind.String);
        }

这个问题 参考我的排列组合工具即可

Optional and named parameters
(可选命名参数)

注意VS2010 只支持Office 2007、Office
2010,若要开发基于Office 2003的VSTO项目,请使用VS2005、VS2008。

关键字组合

 

3.2、这里我选择只针对Excel:

Excel催化剂先是一微信公众号的名称,后来顺其名称,正式推出了Excel插件,插件将持续性地更新,更新的周期视本人的时间而定争取一周能够上线一个大功能模块。Excel催化剂插件承诺个人用户永久性免费使用!

    微软提出的第一种Office开发解决方案就是VBA,在20世纪九十年代VBA红极一时,借助于当时如日中天的Visual
Basic,VBA取得了巨大的成功,无论是专业的开发人员,还是刚入门的非开发人员,都可以利用VBA完成简单或复杂的需求。但是VBA本身拥有很多的局限性,VB语言虽然简单,但是其语法令中高级开发人员不太适应,尤其是VBA的开发环境过于简单,缺少与时俱进的高级功能,使得VBA开发陷入了瓶颈。

 

你说的这个问题我也不会,我平时也会收集一些这些电脑技巧的知识,下面是我收集的excel的一些操作,希望对常用办公软件的我们都有用!

云顶娱乐平台 12

        private static string GetSubKeyName(Type type, string subKeyName)
        {
            var s = new System.Text.StringBuilder();
            s.Append(@”CLSID{“);
            s.Append(type.GUID.ToString().ToUpper());
            s.Append(@”}”);
            s.Append(subKeyName);
            return s.ToString();
        }
        #endregion
    }

VSTO 3.0随同Visual Studio 2008发布:

 

那么就要分先后顺序的咯,说一个不用太复杂公式的方法

九、小结:

 

云顶娱乐平台 13

    本次研究花费了大量篇幅叙述了VSTO的历史变迁及其历代版本中的增强功能,后续篇章会注意研究各功能的具体实现。本次的示例非常基本,基本可以忽略,但是却包括了创建一个完整的VSTO项目的全部步骤,后续练习将会在此基础上进行扩充,实现一些高级功能。

 

云顶娱乐平台 14

 

云顶娱乐平台 15

因插件使用VSTO开发技术完成,插件的安装需要电脑满足相关的环境配置才能运行,且需可连接外网的方式实现自动更新机制,若下载安装过程中有任何疑问或需要离线版安装等,尽量不单独私聊询问,加QQ群可高效解决(群内已汇集了VSTO开发、Powerbi技术、Sqlserver商业智能等方面的国内顶尖大牛人物,进群的好处不用多说了)

对第1点和第5点的简单解释如下:

如Word AddIn、Excel AddIn

和广大拥护者一同期盼:Excel催化剂一直能运行下去,我所惠及的群体们能够给予支持(多留言鼓励下、转发下朋友圈推荐、小额打赏下和最重点的可以和所在公司及同行推荐推荐,让我的技术可以在贵司发挥价值,实现双赢(初步设想可以数据顾问的方式或一些小型项目开发的方式合作)。)

最后,让我们用一个实例来结束本次研究:)

2.3、Ribbon中添加一个按钮:

云顶娱乐平台 16

1、Office 2007 Enterprise Edition With
SP2或更新版本

 

云顶娱乐平台 17

VSTO架构的核心组件是文档级定制、应用程序级加载项和文档级的数据模型。VSTO的新架构允许编写和运行带有宏的Office应用程序。
云顶娱乐平台 18
上图表明Office 2007解决方案逻辑架构。VSTO能够使Office开发者为InfoPath、Word和Excel文档创建文档级定制,而对于Outlook、PowerPoint和Visio,VSTO不支持文档级定制。
VSTO提供了非常好的面向对象编程支持。VSTO提供了对C#编程语言的完全支持,允许在Office解决方案中执行面向对象编程。面向对象编程是一种软件编程方式,程序结构基于对象之间的交互,以执行任务。
VSTO的架构设计帮助Office开发者实现了应用程序和数据的分离,提供开发应用程序级解决方案的增强支持,并且公布了多种对象使Office开发者更容易编写Office应用程序。开发应用程序级和文档级的解决方案是VSTO中另一项架构改进。

 

回答:n

4、全部保存,F5运行:

云顶娱乐平台 19

4.使用方法

3、Visual Studio整合
为了容易创建定制的用户界面,VSTO 3.0在Visual Studio里提供了Office应用程序的可视化表现。VSTO 3.0很好地与Visual Studio 2008整合在一起,为Office开发者提供了完整的开发和部署Office解决方案的工具。Visual Studio 2008能够使开发者创建可升级的Office商务应用程序、改变主要的Office UI特征、支持工作流、以及创建更容易的部署。
下面,看看Visual Studio 2008中Office 2007应用程序的典型的VSTO项目模板。
云顶娱乐平台 20
Visual Studio 2008已经打包了使用VSTO创建Office解决方案所需要的全部VSTO 3.0组件。当安装Visual Studio 2008时,所有相关的安装,包括VSTO 3.0的项目模板、Office开发引用和其它组件,都被安装并完全整合到新的Visual Studio 2008开发环境中。

.NET Framework –> Visual Studio Tools For Office Runtime à MSI或.vsto

回答:云顶娱乐平台 2

  • 使用ClickOnce部署:ClickOcne部署技术允许基于Windows应用程序使用最小程度的用户交互来部署和运行。安全区将限制使用ClickOnce技术部署的应用程序的许可和操作。

云顶娱乐平台 22

愿意付费给你处理或看看插件能不能有现成功能给你解决到的

VSTO架构
VSTO应用程序由Office应用程序和.NET程序集组成。

云顶娱乐平台 23

常见的各种彩票计划,都是建立在排列组合之上,比如我们要看12345这5个数字组合成形如123,134,135,231…这种3个不重复的排列组合数字都列出来,如果用手工还是挺麻烦,用我这个工具很简单,参考下图

PIA(Primary Interop
Assemblies)是根据COM API生成的.Net Assembly,一般体积比较大。在4.0中运行时不需要PIA的存在,编译器会判断你的程序具体使用了哪一部分COM API,只把这部分用PIA包装,直接加入到你自己程序的Assembly里面。

小结:

回答:你这个是彩票么,排列3?

1)MSDN VSTO版块    

.vsto的默认打开方式是Visual Studio Tools For Office Execution Engine:

2018年开始职业生涯作了重大调整,从原来的正职工作,转为自由职业者,暂无固定收入,暂对前面道路不太明朗,苦重新回到正职工作,对Excel催化剂的运营和开发必定受到很大的影响(正职工作时间内不可能维护也不可能随便把工作时间内的成果公布于外,工作外的时间也十分有限,因已而立之年,家庭责任重大)。

4、创建VSTO解决方案
在开发和传递创新的Microsoft技术方面,Visual Studio 2008是非常快速、协同性好和灵活的,包括增强的语言和数据功能。Office 2007中支持的C#和VB.NET是增强的语言特性之一,并且容易与其它数据源交互数据,例如Microsoft SQL服务器,是数据特性之一。这些特性确保开发者能够快速地创建连接的应用程序,传递下一代软件实践,以及克服应用程序软件开发挑战。
云顶娱乐平台 24
上图表现了Office解决方案的开发环境。在图中,客户端代表开发环境机器,在Visual Studio 2008里面的VSTO 3.0代表VSTO整合在Visual Studio中,Office 2007客户端工具是Office应用程序,包括Word、Excel、InfoPath等,应该被安装在客户端机器上。
使用Visual Studio 2008开发环境能够创建应用程序级、数据中心解决方案。数据中心解决方案是集中于数据操作和数据存储的功能。
Visual Studio 2008开发环境使得开发带有主要的Office 2007系统特征设计时和运行时支持的解决方案成为可能,例如功能区、自定义任务窗格、文档级解决方案、Outlook窗体区域,等等。
功能区是Office应用程序中表现菜单项的新方式。在新开发环境中,有可视化设计器,能够拖拉功能区里的控件,容易设计自定义的功能区菜单。甚至数据相关的操作,例如创建数据连接,有数据连接向导容易创建数据连接。
在创建的Office项目解决方案中,可以看到列出的引用,例如System.AddIn、System.Core等等,它们被自动装载作为项目模块的一部分。这使得开发者更容易开始编程,不需要像以前一样手工添加引用和验证解决方案。
通过使用基于XML的数据/视图分离和编程性,Office开发者能够将商务数据整合到文档里。

3、安装之前最好将原来版本卸载,若.vsto出现无法安装的情况,则可以使用Mage.exe清理一下缓存再尝试安装。

Excel催化剂插件下载链接:

我们期望下一版本能带来什么?
基于笔者的分析和作为一名VSTO开发者的经验,我们期望下一版本的VSTO:

云顶娱乐平台 25

彩票做号电商关键字排列组合一键生成VBA开源EXCEL版排列组合工具

    由于历史遗留问题,Office本来是设计与COM协同工作的,这就使得从一开始VSTO就有点”水土不服”。.net代码通过封装COM与Office通信,但是有时这种配合却并不协调,Office对象模型并不总是遵循.net设计所采用的命名规则和设计模式。

云顶娱乐平台 26

获取工具下载链接方法:保证是今日头条最新版app,关注本头条号,然后点我名字进去,右上角私信回复1010即可

  • 功能区可视化设计器:功能区是组织相关命令的新方式。实际上,它们作为控件显示。可视化设计器提供高级工具并支持更容易地创建和设计自定义功能区。

1.3、在一个工作表中放置一个按钮:

云顶娱乐平台 27

本系列所有示例代码均在 Visual Studio 2010 Beta 2 + Office 2010 Beta
下测试通过 

云顶娱乐平台 28

擅长技术领域:Excel等Office家族软件、VBA&VSTO的二次开发、Sqlserver数据库技术、Sqlserver的商业智能BI技术、Powerbi技术、云服务器布署技术等等。

Interop type embedding (“No PIA”)
(主调程序集嵌入)

1、Office版本不同

M选N彩票组合示例

VSTO 3.0**的新功能**
VSTO 3.0具有大量的新功能,也增强了现有的关键功能。下面列出在VSTO 3.0中可用的改进Office解决方案开发工作的一些关键的新功能:

4.3、我安装的是Excel x64,需要手动注册自定义公式的程序集,为此在项目属性中的Build Events中写入批处理脚本来自动注册:

你想个办法输入就行了!!!

一、什么是VSTO?

云顶娱乐平台 29

明显是000→999

 

1.6、在Debug目录下会发现生成了如下这些文件:

回答:云顶娱乐平台 30

  • SharePoint支持:VSTO中的新对象帮助开发者在Office应用程序中为SharePoint编程。可以使用VSTO扩展Office客户端应用程序,使用SharePoint Portal将它们整合到企业解决方案中,例如客户关系管理、供应链管理以及其他类似的应用程序。

namespace ExcelAddIn
{
    public partial class RibbonDemo
    {
        private void RibbonDemo_Load(object sender, RibbonUIEventArgs e)
        {

 

 

4.0中就可以直接写成:

 

3、OpenXML SDK 2.0

添加System.Windows.Forms的引用,然后在Connect.cs中的OnStartupComplete事件中弹出一个对话框:

3、弹出欢迎信息”

云顶娱乐平台 31

 

.vsto文件其实是一个XML文件,用文本编辑器打开可以看到具体内容:

六、开发工具

 

ref missing, ref missing, ref missing,

云顶娱乐平台 32

在C#中在调用COM对象如office对象时,经常需要写一堆不必要的参数:

3.5、设置安装项目属性:

 

一般客户计算机专业水平不高,但是有一些Office水平相当了得,尤其对Excel的操作非常熟练。因此如果能将产品的一些功能集成在Office中,将会有很好的基础。

 

2.5、F5运行后会打开Word:

二、为什么要进行Office开发?

1.4、在其单击事件中弹出一个对话框:

2、在工作簿中添加一个按钮,添加一个Click事件:

        #region COM Related

  • Word内容控件:内容控件是容器,其中能放置特定类型的内容,例如日期、列表、图片或文本。

云顶娱乐平台 33

  • 任务窗格:任务窗格帮助用户快速且更方便地访问信息。取决于用户的喜好,可以在Office应用程序用户界面中显示或隐藏任务窗格。

云顶娱乐平台 34

doc.SaveAs(ref fileName,

 

开发方式
使用VSTO 3.0创建的解决方案类型分成两类:文档级解决方案和应用程序级解决方案。
1)、面向文档的方式
面向文档的方式被专门设计为接触Word或Excel文档的核心并包含原先设计的文档不支持的信息。VSTO 3.0支持面向文档的方式创建Word、Excel和InfoPath。实际上,面向文档的方式提供指向非常特定任务的文档,不会影响到文档驻留的应用程序。
2)、面向应用程序的方式
VSTO 3.0具有为Office 2007套件中所有的应用程序创建面向应用程序的方式的能力。可以创建和执行向Office应用程序中添加了各种功能和特征的加载项。
VSTO**开发和部署
VSTO系统3.0运行时,运行Office 2007解决方案的首要需求,被内置到VSTO中。而VSTO 3.0被内置到Visual Studio 2008安装中。
使用VSTO创建Office应用程序**
在Visual Studio 2008中包括VSTO,也就是说,Microsoft首次将Visual Studio 2008和VSTO 3.0绑在了一块。在VSTO 3.0中,Microsoft Office工具变得更加强大,因为Microsoft使Office开发环境对开发者更加友好,通过创建新的开发环境帮助开发者创建Office应用程序里的功能的解决方案。因此,Office开发者能够容易地创建解决方案,为他们的商务做更多工作,另一方面,重复使用Office应用程序中现有的可用功能,从而减少成本开支。
VSTO甚至可以整合现有的ERP系统,增进企业的成长。可以使用VSTO扩展Office客户端应用程序,将VSTO与SharePoint Portal整合来提供企业解决方案,例如Office商务应用程序,包括客户关系管理、供应链管理,等等。

        private void btnSubtract_Click(object sender, RibbonControlEventArgs e)
        {
            Globals.ThisAddIn.Application.ActiveCell.Formula = “=Subtract()”;
        }

虽然现在VSTO 4.0还没有正式发布,但是从测试版已经可以看出些端倪:

3.3、设置加载属性:

云顶娱乐平台 35

.NET运行时为4.0,所以客户端首先要安装.NET
Framework 4.0。

七、推荐资源

目前多出现在新上市的笔记本,很多都是Win7 64位,安装了Office 2007、2010
32位。

ref missing, ref missing, ref missing,

2.7、客户端依旧需要安装.NET 4.0、Visual Studio 2010 Tools For Office
Runtime才能运行该VSTO项目:

  • 目前,VSTO 3.0支持VB.NET和C#开发Office解决方案。在将来的VSTO版本中,我们期望支持其他语言,例如C++,这将帮助C++开发者创建VSTO解决方案。
  • VSTO 3.0智能标记仅限于Office应用程序中文档级解决方案,不能在应用程序级解决方案中使用,因此我们期望Microsoft在将来的VSTO版本中添加这项功能。
  • 使用VSTO和Visual Studio环境在Office应用程序内创建工作流活动是我们在下一版本中期望的功能。数据和应用程序协同工作的能力是Windows工作流的核心,在VSTO中的改进将帮助我们重新组织面向工作流的开发。
  • 应该在将来的版本中在Visio应用程序中也添加使用VSTO创建文档级的自定义任务窗格的功能。这将对Visio用户管理自定义形状是有用的。

        public int Multiply(int a, int b)
        {
            return a * b;
        }

2、Visual Studio 2008 Team System With
SP1 或更新版本

 

Optional “ref” modifier
(可选 ref 修饰)

 

  1. 提供了新的文档模板
  2. 对Word、Excel的可视化支持
  3. 可以使用托管的Windows Forms控件或组件
  4. 宿主控件(不知道翻译的怎样:))    
  5. 支持在文档中添加智能标签
  6. 动作面板支持
  7. 数据绑定、数据源、数据模型支持
  8. 数据缓存
  9. 服务器端编程
  10. 配置文件
  11. 新的部署方式
  12. InfoPath开始支持托管代码
  13. 与众不同的Outlook 托管插件

using System;
using System.Runtime.InteropServices;
using Microsoft.Win32;

VSTO = Visual Studo Tools for
Office,是.net平台下的Office开发技术。相对于传统的VBA(Visual Basic
Application)开发,VSTO为中高级开发人员提供了更加强大的开发平台和语言,并部分解决了传统Office开发中的诸多问题(难于更新、可扩展性差、难以维护、安全性低等),开发人员可以使用熟悉的技术来构建更加灵活的、强大的、跨平台的企业级解决方案。

云顶娱乐平台 36

 

注意Add In
类型是全局性的,只要安装,用户随便打开一个Office文档都会包含该Add In。

ref missing, ref missing, ref missing);

3.8、直接在安装项目右击àInstall即可以安装:

云顶娱乐平台 37

        }

  • 文档级的定制:文档级的定制是自定义驻留在单个文档里的解决方案。使用VSTO的文档级定制是新版VSTO中添加的关键功能之一。VSTO支持Word、Excel、InfoPath的文档级解决方案。

     

  • 应用程序级加载项:应用程序级加载项被创建为托管代码程序集,当相关的Office应用程序启动时将装载应用程序级加载项。VSTO 3.0提供了直接编程访问.NET对象和控件。

目前主要有Office 2003、Office 2007、Office 2010。

6、调试
调试是软件开发中最重要的任务之一,并且是所有开发者在他们的开发过程中会遇到无数次的一项任务。在Visual Studio IDE中,开发者为调试.NET应用程序有几种可用的调试选择。
Visual Studio 2008为使用VSTO 3.0的Office解决方案开发提供了一组强大的创建和调试工具,与VSTO 2.0相比是一项大的改进。在创建配置时,开发者能够选择他们想创建的组件,排除他们当前想避免创建的组件。开发者可以像项目一样,灵活地为解决方案创建配置。

1.2、选择Office 2007格式.xlsx:

对于Office解决方案开发来说,VSTO是简单但强大的框架。这个框架为每个Office开发者带来了许多令人惊叹的好处:窗体控件、类、安全性、服务器可测量性、面向对象特征、完整性、易发布,等等。
1)、更安全的托管代码扩展
VSTO允许托管和非托管代码无缝地放在一起到相同的.NET程序集里,这允许开发者保留非托管代码而无须完全重写。带有链接或引用托管代码程序集的文档或工作簿被作为托管代码扩展。通过使用VSTO在Word或Excel中创建托管代码扩展,与宏相似但更安全。使用VSTO,能够创建仅需要装载数据的模板。
2)、数据缓存
数据缓存,简单地说,就是在内存中存储数据以便于快速访问。Microsoft Office Word文档或Excel工作簿有一个隐藏的控件,称之为运行时存储控件(Runtime Storage Control),存储缓存的数据。VSTO提供数据缓存功能,使用C#中的ServerDocument类,通过应用程序外部到Office来操控数据缓存,无须访问Word或Excel对象模型。
3)、自定义功能
使用可重复使用的类,VSTO 3.0提供极好的控制来自定义Office应用程序。不像VBA开发者,VSTO开发者不局限于VBA函数库。VSTO提供了相当广泛的类、对象和事件来创建Office商业解决方案。使用VSTO,开发者能够为Office应用程序自定义功能。这能够简单到在应用程序命令栏中添加按钮或自定义任务窗格,或者复杂到用于访问不同数据源的数据报表模板。
4)、自定义用户界面
VSTO提供Windows窗体控件,帮助你为Office解决方案开发富用户界面(UI)。通过使用大量各种各样的控件集,VSTO开发者能够为用户创建丰富的数据视图。每种和每类Windows窗体控件都有自已的属性、方法和事件设置,适合不同的需要。
通过在文档和任务窗格里使用控件,VSTO使创建丰富的用户界面更容易。例如,可以创建一个活泼的按钮命令产生套用信函。又如,假设公司在其服务器上存储了数据内容,用户在处理文档时想从服务器中引用一些内容并且不想离开当前编辑的文档,使用VSTO可以使服务器内容在文档的任务窗格中可用而无须干扰用户当前的工作。
5)、智能标记
智能标记是Office应用程序能够在文档里识别的字符串。启用智能标记,Word试图识别文档中某类数据,通过紫色的点划线来显示。单击智能标记,出现特定数据类型的可能操作的列表。VSTO给Office开发者提供了对象模型,可用于为文档和工作簿创建智能标记。
6)、WPF支持
WPF能用于创建丰富的、具有吸引力的外观。在VSTO环境中可使用WPF。VSTO的可视设计器支持Windows窗体和WPF控件的使用。WPF为创建基于客户和基于网络的应用程序提供了可靠的编程模型,并且在商务逻辑和UI之间呈现清楚的分离。
7)、可视化的设计器
VSTO为Office应用程序提供了可视化的设计器,例如Word 2007、Excel 2007,显示在Visual Studio IDE里。在Visual Studio IDE里创建窗体只需拖动并放置窗体到Office文档中。开发者能够访问Visual Studio IDE中的许多工具和功能,例如智能感知、拖放控件和数据源。VSTO也提供了Ribbon可视化设计器,用于通过使用简单的.NET应用程序编程模型自定义Office功能区和编程。
8)、安全改进
VSTO安全模型包含从Office信任中心和Visual Studio Tools for
Office运行时的广泛支持,帮助解决VBA代码通常涉及的安全问题。VBA安全模型有许多缺点,容易使用VBA开发许多病毒。为了安全地运行VBA宏,用户机器中必须设置安全性为高,并且使用数字签名。更重要的是,这些操作都需要用户手工执行。在VSTO 3.0中,已经修改了安全模型。VSTO创建了安全策略,每次创建工程时必需在计算机中运行和调试解决方案,在发布前签署程序集。
9)、可维护性
为Office系统开发的VSTO解决方案更容易维护。更新已发布的解决方案,修改代码,以及更新单个的程序集将帮助更多的资源在相同文档的多个副本里做相同的事情。所有代码将驻留在程序集里。在使用宏时,脚本驻留在Office文档里,无论何时想更新代码,必须修改每一个包含代码的文档。使用VSTO 3.0,能够通过简单地修改代码和更新单个的程序集来管理应用程序级加载项,无须在相同文档的多个副本中做同样的事情。

云顶娱乐平台 38

    VSTO 2.0随同Visual Studio 2005推出,提供了大量新特性:

3.6、设置安装项目运行依赖组件:

 

1.5、F5运行,会打开Excel,点击按钮弹出我们希望看到的信息:

4、VSTO 3.0(VSTO 2008)

云顶娱乐平台 39View Code 

一个最简单的VSTO 4.0项目就完成了。

下面我们就来逐个探讨一下相应的部署方案。

云顶娱乐平台 40

4、Excel自定义公式类型

Improved COM
Interoperability

1.1、使用VS 2010创建一个Excel Workbook项目:

四、Office开发存在的问题

云顶娱乐平台 41

示例代码下载

%windir%Microsoft.NETFrameworkv4.0.30319regasm /codebase “$(TargetPath)”

ref missing, ref missing, ref missing,

二、待部署的项目是Add In类型

2、VSTO 1.0(VSTO 2003)

云顶娱乐平台 42

  • 富用户界面控件:能够创建带有丰富且容易访问的用户界面的Office解决方案。例如,可以创建带有Windows控件的任务窗格,和其它数据源交互数据。

云顶娱乐平台 43

  • 窗体区域:窗体区域是自定义标准的Outlook 2007用户界面的新方式。例如,在Visual Studio 2008中,VSTO 3.0提供了基于Windows窗体的设计和开发环境。这允许Office开发者在单个的开发环境中设计和编码新的Outlook窗体区域,将大多数Windows窗体引入到Outlook的宿主环境中。

     

  • 工作流支持:VSTO提供可视化设计器支持开发者使用Visual Studio 2008创建工作流。一个向导选项用于创建工作流,并且直接将其赋值到发布位置。

包含了VSTO项目的具体信息,如.NET运行时版本,依赖的程序集,数字签名等信息,不要手动修改这个文件。

3)Office
2010官方博客

   

 

云顶娱乐平台 44

5、VSTO 4.0(VSTO
2010)

对此需要引导客户,虽然客户是上帝,但是如果能说服客户升级Office,则对用户体验和项目后期的升级维护有显著的好处。

3、VSTO 2.0(VSTO 2005 SE)

 

  • 支持其他的Office应用程序。

2.2、添加一个可视化Ribbon:

接触VSTO纯属偶然,前段时间因为忙于一个项目,在客户端Excel中制作一个插件,从远程服务器端(SharePoint
Excel
Services)上下载Excel到本地打开,用户编辑后再上传回服务器端。当时工期紧迫,临时查了些资料,用VSTO

云顶娱乐平台 45

时光跨入21世纪,微软发布了.net平台,并推出了新千年的新语言:C#,VBA一统Office开发天下的情况终于有所转变。从Office
2003开始,Office正式由一个桌面办公平台转化为了桌面开发平台,微软也适时推出了VSTO
2003,即VSTO
1.0。正是由此开始,Office开发跨入了一个新的时代,开发人员可以使用更加高级的语言和熟悉的技术来更容易的进行Office开发。VSTO
1.0完全编程支持Office 2000和Office
XP,提供了以文档为中心的开发平台,开发人员使用.net framework
1.1开发Office中的一些自动化程序等。

注意TargetPlatform没有AnyCPU,故需要针对x86、x64分别编译一份MSI安装文件。

1、VSTO开发环境
VSTO 3.0不是单独的安装包,当安装Visual Studio 2008时,VSTO 3.0将与其它的框架和所需的组件一起安装。
2、包(Package)
当安装Microsoft VSTO 3.0分发包时安装VSTO运行时。VSTO 3.0分发包是将Visual Studio 2008和.NET框架的功能和生产力带给建立在Office 2007应用程序中的商务解决方案的框架。
云顶娱乐平台 46
上图说明了VSTO的版本历史,以及各版本之间的一些主要的不同。当前版本的VSTO仅支持编程语言VB.NET和C#。我们期望VSTO的下一个版本能支持其它的编程语言。

 使用VSTO开发建议客户端安装Office
2007或更新版本,因为VSTO本身就是对Office
2007或更新版本量身定制的。Office 2003由于历史遗留问题,难以适应新架构。

 

云顶娱乐平台 47

Eric Carter    Eric
Lippert

3.4、默认有两个项目,一个是插件,另一个是MSI安装项目:

  • Excel COM
    API完成。正因为这个项目,我发现了VSTO的强大功能与潜力,决定抽出一些时间来好好研究下。

        [ComUnregisterFunction]
        public static void UnregisterFunction(Type type)
        {
            Registry.ClassesRoot.DeleteSubKey(GetSubKeyName(type, “Programmable”), false);
        }

三、Office开发简史

云顶娱乐平台 48

Automatic object -> dynamic
mapping (自动类型转换)

4.8、激活自定义公式:

1、新建一个Office 2010的Excel Workbook项目:

 

2)两位VSTO大师的博客,也是《VSTO 开发指南》的共同作者:

 

    Office拥有强大的数据分析、显示和计算能力,尤其在桌面领域,已经成为了办公自动化的行业标准。虽然Office功能强大,但是也不可能满足各行各业的特定需求,如果能够借助于Office构建企业的个性需求,那将十分具有吸引力。这样,在不需要其他专业软件的情况下,就可能完成既定的目标。

目前只有Office 2010提供64位版本。

1、VBA(Visual Basic Application)

云顶娱乐平台 49

在COM调用中,很多输入输出类型都是object,这样就必须知道返回对象的确切类型,强制转换后才可以调用相应的方法。在4.0中有了dynamic的支持,就可以在导入这些COM接口时将变量定义为dynamic而不是object,省掉了强制类型转换。

2.4、单击弹出对话框:

八、VSTO 4.0 Hello World

3.7、设置完成后编译安装项目,会生成相应的MSI安装包:

Indexed properties (索引属性?)

 

object missing  = System.Reflection.Missing.Value;

 

1、书籍:《VSTO 开发指南》,VSTO的权威著作,强烈推荐。

安装完后打开一个Excel就会看到我们的对话框:

五、Visual Basic的”优势”

在安装项目属性页中的【Prerequisites】中可以设置更多的运行依赖组件:

4.2、写加减乘除四个函数和COM注册、反注册函数:

如Word Document、Excel Workbook

所谓Shared
AddIn,就是该插件可以被多种Office文档共用,但是一般都是针对一种Office文档开发。

 

云顶娱乐平台 50

1、文档类型

此外,不同VSTO项目的部署方式也不相同。主要有如下一些VSTO项目类型:

 

4.5、在Ribbon项目中添加调用自定义公式的代码:

3.1、创建一个Shared AddIn项目:

 

3、64位操作系统安装32位的Office

云顶娱乐平台 51

 

四、Excel自定义公式类型

3、Shared AddIn类型

 

云顶娱乐平台 52

%windir%Microsoft.NETFramework64v4.0.30319regasm /codebase “$(TargetPath)”

云顶娱乐平台 53

云顶娱乐平台 54

三、Shared AddIn类型

云顶娱乐平台 55

 

 

云顶娱乐平台 56

在【Developer】选项卡中点击【Add-Ins】,再点击【Automation】找到我们编写的自定义公式,【OK】。

2.6、在Debug目录中会生成一些文件:

 

云顶娱乐平台 57

由于是文档类型,因此生成一个Excel工作簿很正常。有一个.vsto格式的文件很少见,它就是VSTO项目部署时的安装文件。

云顶娱乐平台 58

本系列所有测试代码均在Visual Studio
2010 Ultimate SP1 + Office 2010 Professional Plus x64 SP1 上测试通过

测试代码下载

4.1、创建一个类库项目:

命令行下执行:mage -cc

C:Program Files (x86)Microsoft SDKsWindowsxxBin     àWindows x64

 

C:Program FilesMicrosoft SDKsWindowsxxBin     àWindows x86

 

        public int Divide(int a, int b)
        {
            return a / b;
        }

之所以把Excel自定义公式类型单独拿出来说,是因为Excel自定义公式的注册有些特殊,尤其是Excel
2010 x64。

云顶娱乐平台 59

2、32位与64位的Office

 

其中xx是Windows SDK的版本号,如v6.0A、v7.0A、v7.1等。

Mage.exe是Windows SDK中的一个小工具,安装完Windows SDK后默认位于:

Visual Studio 2010 Tools for Office Runtime 可以在这里下载。

        private void btnAdd_Click(object sender, RibbonControlEventArgs e)
        {
            Globals.ThisAddIn.Application.ActiveCell.Formula = “=Add()”;
        }

4.4、在生成管理器中配置为 x64:

1.7、我用了一个虚拟机模拟客户端,安装了.NET 4.0和Office
2010后就可以打开.vsto了:

 

4.7、编译、运行,会调用Excel来打开,自动加载我们的插件ExcelAddIn:

云顶娱乐平台 60

注意文档类型的VSTO项目安装后只对发布的一个文档有效(只对Debug中的Excel有效),不影响用户其他的Office文件,即文档类型项目不是全局性的。

部署到客户端时需要执行这个批处理脚本。

        public int Subtract(int a, int b)
        {
            return a – b;
        }

using Microsoft.Office.Tools.Ribbon;

4.9、此时在Excel中就可以使用我们的公式了;

 

云顶娱乐平台 61

        private void btnMultiply_Click(object sender, RibbonControlEventArgs e)
        {
            Globals.ThisAddIn.Application.ActiveCell.Formula = “=Multiply()”;
        }

云顶娱乐平台 62

这里我们只谈部署,关于如何开发相关的项目请参考其他资料。