ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 6799|回复: 16

[原创] 是否应该开设一个VSTO的版

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-4-16 14:29 | 显示全部楼层 |阅读模式
我是一名.NET程序员,主要学习的是C#语言.随着VS2008和VS2010的发布,VSTO(visual studio for office)已经越来越强大了,但是国内关于VSTO方面的开发依然比较少.如果论坛有这方面的高人,希望增加一个VSTO的专版,帮助VSTO在中国的成长

TA的精华主题

TA的得分主题

发表于 2010-4-18 12:30 | 显示全部楼层

〖Excel Home友情提示〗

   

很遗憾通知楼上朋友,您的帖子在24小时之内没有任何回复!

通常情况下,本论坛发布的主题帖会在8小时被回复或处理。您的帖子在24小时之内未被回复,其中的原因可能是

1、问题表述不清、模棱两可,难以理解,帮助者被搞晕了,夺帖而出;
2、没有上传必要的附件,或附件被遗忘在某个角落;
3、发帖提问时,语气带棱角、带挑衅,不幸被列入不受欢迎的帖子;
4、所提问题不成立,或提不合理的要求,乐于助人者使出“走为上”之计;
5、话题较偏、较冷或者发布到了不合适的版块,暂时无人问津,顾影自怜。


为了提高您的问题解决效率,我们推荐您阅读以下文章:
* 如何发表新话题和上传附件:http://club.excelhome.net/thread-45649-1-1.html
* 发帖的技巧:http://club.excelhome.net/thread-176339-1-1.html
* EH技术论坛的最佳学习方法:http://club.excelhome.net/thread-117862-1-1.html

TA的精华主题

TA的得分主题

发表于 2010-4-18 21:46 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-4-18 22:02 | 显示全部楼层
不过用得业余者不多,用这个都是专业开发者吧。
不过看到那个  { } 的语法有点提不起兴趣。

TA的精华主题

TA的得分主题

发表于 2010-4-19 14:07 | 显示全部楼层
原帖由 lb_bn 于 2010-4-18 22:02 发表
不过用得业余者不多,用这个都是专业开发者吧。
不过看到那个  { } 的语法有点提不起兴趣。


VB.NET不用{ } 呀,C#才要,不过习惯了也蛮好的,代码段看的清晰明了

TA的精华主题

TA的得分主题

发表于 2010-4-19 14:12 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

VS2010中不可忽视的部分——VSTO

今天是Visual Studio 2010正式发布的日子,刚刚看了相关的新闻和介绍,感觉上相比Visual Studio 2008来说,又有了不少新的改变和创新,不管是炒作概念也好,炒作想法也罢,但都是想法设法地为我们这些辛苦的程序员们节省了时间,提高了效率。
在发布会上,似乎更多的时间用来介绍最近最为流行的一些概念,像云产品Azure,还有在Visual Studio 2010中可以使用的敏捷方法等等,这些特性的确很好,但都有个特点,就是更多贴近的是我们这些程序员,这也难免,毕竟Visual Studio 2010本身就是一个开发工具。
然而,我觉得其中还有一个不可忽视的组成部分,那就是VSTO(Visual Studio Tools for Office),这个针对Office开发的工具,从最初的1.0,到后来的2.0,再到VS 2008中的3.0,一步一步地走到现在,已经能够和几乎所有的Office家族中的产品紧密地结合了。
然而,在国内为什么没有太多的人对其关注呢?在寻找答案的时候,我想先讲一件在工作中遇到的小故事。
有一次业务部门需要开发一个抽奖的小工具,要求随机抽出指定数量的中奖号码,并且还要导出到Excel中,以方便打印。本来想要使用VS 2005开发,但是业务告诉我,第二天就需要使用,而此时已经是当天下午1点多了。时间紧、任务重啊!最终我使用Office的开发技术,也就是VBA来实现了这个小程序,花费时间:2小时。结果业务部门使用地非常方便,毕竟他们对于Excel的使用还是非常熟悉的。但是,当我和领导提起这件事儿的时候,他告诉我,等有时间的时候,再做个真正的程序吧。
大家看到了吧,在现实的环境中,很多人并不认为Office开发是真正的开发,因为它不是传统的Winform形式的软件,也不是当前比较流行的B/S模式,似乎只是在Office的基础上修修补补,做出来的不入流的小东西。
然而,我要说的是,这是一种需要纠正的看法,Office开发真的非常重要。
为什么呢?大家想想当前公司中使用的各种软件之中,除了操作系统Windows之外,哪种软件的使用频率最高,公司的人员掌握的最好呢?毫无疑问,答案就是Office系列的软件,可能会包括Word、Excel、Powerpoint等等,这些软件不仅已经形成了一个庞大的家族,不断有新丁的加入,而且在业界已经形成了几乎垄断的地位。
大家还记得几年前Google发布Gmail的时候吧,那是大家都没有想到,现在在其之上衍生出多种软件,已经和Gmail一起形成了一个产品家族。
微软没有像Google一样以邮件为中心,而是以文档工具为中心,围绕着Office的产品,逐渐地形成了属于自己的产品家族。而有了VSTO,更是为扩展这个家族成员的功能提供了非常大的便利,作为程序员,我们不仅可以充分利用Office中现有的功能,而且还可以借助强大的.NET framework,来对其进行几乎是无限的扩展,访问数据库,访问其他软件的接口,访问Web Service等等,有了这些功能,我们可以在Office完成许多之前不可想象的工作。
或许大家还对上面的言论保持怀疑的态度,那么就让我们一起来看下这样的场景。
具体场景:客户投保(保险业)
当前在保险公司中,投保这个环节是非常重要的,因为这就意味着公司能够收入资金了,但是这也是非常麻烦的一件事儿,不信你看这个环节所需要的步骤:
1、代理人和客户商量、为其建议,最终填写好投保单
2、代理人将投保单带回当地的分公司
3、分公司负责人员将投保单发送给总公司
4、总公司将投保单录入到核心系统中
5、对其进行核保等操作,为客户打印保单
简单看来,似乎并不复杂,但是在实际的操作过程中,由于总分公司之间可能有很远的距离,所以投保单需要一两天甚至更长的时间之后才能够进入到系统之中。
为了解决这个问题,有些保险公司采用了扫描的方式,将投保单扫描成图片,然后按照图片来录入。
然而,这样还是有重复的工作,因为客户和代理人一起填写了投保单,而之后负责录入的人员又将所有的信息录入到核心系统中,而且在这个过程中,不可避免会有信息的丢失和出错。
为了解决这个问题,其实我们可以这样来做:
制作投保单文件,可能是Excel格式或者Word格式,代理人和客户一起在笔记本电脑上填写完成。
在这份文档上我们使用VSTO开发Add-in,只需要连接上公司的局域网,然后轻松地点击“上传到核心系统”,就可以按照相应的规则将信息上传到核心系统中。
仔细思考一下,这样做的话,对于每个投保环节,我们大概可以节省两天的时间,可以节省两个人力,还可以大大提高准确率。而代理人学习如何使用这个功能的时间几乎为0,当然前提是他会使用Office,呵呵。
从上面我们可以看出,使用VSTO与Office紧密相连的特点,在某些情况下,可以大大地提高工作效率,节省作业成本,何乐而不为呢?
当然,上述的场景还是非常简单的,而VSTO只不过是OBA(Office Business Application)的一个组成部分,微软基于Office的应用,必定会越来越强大,或许哪天我们使用的OA系统,都可以是完全由OBA完成的呢,让我们拭目以待。

TA的精华主题

TA的得分主题

发表于 2010-4-19 14:13 | 显示全部楼层

用VS 2010做 Office开发没那么难!

谁都知道Office开发语言的开发支持不够,COM接口太复杂繁琐,开发效率极低,我们程序员最是反感。可是没办法,淫威通过Office开发可以帮助公司完成很多重复性的工作,尤其对于新项目的支持更是重大。
    前段时间还烦恼没有找到合适的开发平台,前几天看到VS 2010 bate2发布了就下载安装上了。使用了几天感觉VS对Office开发的支持很舒畅,甚至可以说简洁而自然。
    VS 2010中C# 4.0引入了一种新的静态类型dynamic,这使得我们在使用COM进行Office开发的时候,无需再进行复杂而繁琐的对象类型转换,通过对可选参数的进行默认值设置,使Office提供的很多参数函数无需全部指定。
    开发完成一个程序组件或文档行就可以自定义部署包,VS 2010可以完成的文档程序发布到共享服务器,只需在发布向导中选择共享库选项,自定义的文档将能添加到相应的文档库或程序集上。
    部署方面VS 2010更是简洁。记得以前的开发Office时都要求目标机器上同样安装了Office,有时甚至对Office的版本还有特殊的要求,这给Office程序的部署带来了极大的困难。VS 2010中只需要在解决方案浏览器中修改相应程序集的属性,使得“Embed Interop Types”的值为True,就可以将真正使用到的程序集嵌入到应用程序中,从而不会对Excel或者Word的整个互操作程序集产生依赖。
    同时,VS 2010提供跨多个Office应用程序和后端数据源的集成访问。我在安装过程中如果需要更多的自定义就可以在一个部署包中一次部署多个解决方案,这样我就可以一次性安装Word和Excel的插件了。如果我需要设置数据库连接、添加注册表项或者将文档复制到最终用户计算机,还可以包含解决方案安装完成之后运行的后部署内容。
    总之,VS 2010在对office开发上进一步完善了,不但包含了一些重大的改进,还简化对Office套件的辅助解决方案的开发、部署和管理体验。

TA的精华主题

TA的得分主题

发表于 2010-4-19 14:14 | 显示全部楼层
问题不该是:是否应该开设一个VSTO的版
问题应该是:是否应该开设一个VSTO的论坛!!

用VSTO实际上比用VBA方便的多了...

[ 本帖最后由 儒道佛 于 2010-4-19 14:15 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-4-19 14:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

VS 2010为Office客户端开发人员带来的加强功能

在去年的Office开发人员大会上,Bill Gates曾经谈到:“考虑我们的软件或任何软件的成功,会发现它们都有一些共同点,那就是它们都是作为一个平台,有着对开发人员的亲和度,以及运行在上面的强大的工具,这是衡量其成功与否的关键”。

从一开始,Office就包含了使开发人员能够扩展 Office 应用程序,使他们从功能上更好得适应实际需求。Visual Studio Tools for Office 2003的引入,使得.NET 开发人员可以轻松地构建将后端业务数据集成到标准Office应用程序中的解决方案,以方便日常使用。

Visual Studio 2010将此功能进一步完善,包含了一些重大的改进,这将简化您的Office套件的辅助解决方案的开发、部署和管理体验。

安装和配置通常是Office开发人员最具挑战性的任务。VS 2010,我们将重点放在提供开发人员和IT专业人员自定义部署所需要的灵活性,同时简化Office 开发人员面临的一些常见挑战。我们意识到,对开发人员来说,能够确保最终用户顺利的安装体验是非常重要的,尤其是当部署的解决方案将提供给信息工作人员对完成工作需要的重要商业数据的访问的时候。这里是三个我们正在VS 2010 里面做的主要改进:

1、不含PIA的互操作性

如果您的解决方案使用CLR v4.0,您将能够使用一个新功能,可直接在您的应用程序程序集中嵌入您的解决方案所需要的互操作的类型接口包。通过删除6.3Mb的PIA Redist文件并只嵌入需要使用的互操作类型,这将减少应用程序占用的空间。并且您在安装过程中也少一个需要操心的地方。

2、发布到SharePoint

我们在Visual Studio 2008中引入了Office 解决方案的ClickOnce部署,您可以轻松的讲解决方案发布到Web站点、UNC共享或CD/DVD介质上。使用VS 2010您还可以将文档发布到SharePoint服务器。这意味着您不再必须手动将文档上传到SharePoint,并维护打开文档时需要安装程序集的网络共享目录。只需在发布向导中选择SharePoint文档库选项,自定义的文档将添加到相应的文档库;程序集也将存储到SharePoint服务器上。这样消除了将文档解决方案部署到SharePoint上时需要同时使用SharePoint服务器和UNC共享的情况。

3、自定义部署包

随着Office 解决方案变得更复杂,并提供跨多个Office应用程序和后端数据源的集成访问,您可能在安装过程中需要更多的自定义。使用VS 2010,您可以在一个部署包中一次部署多个解决方案,这样您的用户就可以一次性安装Word和Excel的插件了。您还可以包含解决方案安装完成之后运行的后部署内容。这就允许您设置数据库连接、添加注册表项或者将文档复制到最终用户计算机。

在2008年的PDC上,Anders Hejlsberg介绍了VS 2010 中几个新的C# 功能,将极大地简化与Office中公开的基于COM的OM的互操作。比如,在下面的示例中,我们只需要将对象文档保存到文件名为test.docx的文档中。这是现在您需要编写的代码:

object fileName = "Test.docx";

object missing  = System.Reflection.Missing.Value;

doc.SaveAs(ref fileName,

ref missing, ref missing, ref missing,

ref missing, ref missing, ref missing,

ref missing, ref missing, ref missing,

ref missing, ref missing, ref missing,

ref missing, ref missing, ref missing);

使用VS 2010,上述代码仅需要简简单单的一行即可代替!

object fileName = "Test.docx";

doc.SaveAs(fileName);

C#的另一个新的语言功能称为命名的参数。如果您熟悉VB,但使用C#的话,您可能会喜欢这个功能带来的可读性和灵活性。

var result = namedRange.Find(

              MatchCase: true,

              What: "dog",

              SearchOrder: XLSearchOrder.xlByRows);

我们的目标是通过使用Visual Studio 2010 和.NET FX 4.0,使您构建和部署基于.NET的Office的解决方案更加简便。

Namaste !

TA的精华主题

TA的得分主题

发表于 2010-11-20 15:54 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-24 06:13 , Processed in 0.033250 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表