我要讲的这个“茴”字是什么呢?其实是excel的用户自定义函数(udf)。
excel从4.0开始提供了第一种添加udf的方式:XLL。这个本质上是一个DLL。但是只要这个DLL暴露了excel规定的一些函数,并暴露出来,再把xll注册到excel就能让excel把你写的udf添加进去了。
后来excel又支持了vba。这个时候臭名远扬的“宏”就出现了。在excel中,用vba写的sub(没有返回值的函数)被称作宏,而function(有返回值的函数)可以被用作udf。所以“茴”字的第二种写法是vba。一个变种是把vba做成XLA文件,然后注册。包装成XLA之后,就可以把udf分发了,不然则和具体的电子表格文件绑定。
在excel 2002的时候,excel又支持了第三种写法。从这个版本开始,excel开始支持把COM对象的public方法用作udf(称作Automation Addin)。只要两个条件,一个是COM对象被注册了,第二个是把在excel中注册这个COM对象。
实际上,还不止这三种写法。在excel 2007中又添加了excel service,允许远程的服务被当作udf来使用。不过由于没有对此研究过,所以姑且只论这三种吧。下面,来分析一下各自的优劣和试用场合,以及一些需要特别注意的地方。
XLL
优势:直接用C写,操作底层对象,速度快。提供了官方的注册到函数列表的方式,可以提供详细的用法描述。
缺点:编写与维护都困难
适用场合:计算量大的功能(比如复杂的插值算法,期权价格计算)
VBA
优势:用户可以自己编写,语言写法相对简单。
劣势:速度比XLL慢得多。无法注册到函数列表(有非官方的破解方式)。是宏,需要设置excel的安全选项。
使用场合:真正的”用户“自定义函数。
Automation Addin
优势:可以用任意支持COM语言来写。维护性最好(可以拿高级的IDE,高级的编程方式来写)。
劣势:速度最慢(与COM对象的互操作耗费时间)。不但无法注册到函数列表,甚至无法自动载入(用户不操作UI,就不会载入)。
使用场合:大型的项目,速度不敏感。
提示:
让其自动载入的办法的非官方破解是Insert->Functions...,然后关闭打开的窗口。此时就载入了。
要获得Application对象,请实现IDTExtensibility2接口。
分享到:
相关推荐
这篇文章只是总结下getView里面优化视图的几种写法,就像孔乙己写茴香豆的茴字的几种写法一样,高手勿喷,勿笑,只是拿出来分享,有错误的地方欢迎大家指正,谢谢。 listview ...
还不如去学茴香豆的茴字有几种写法 好好的一门手艺, 给糟践成这样了 估计也就本三学校会用这种试题,专科的嫌它浪费时间,职技的嫌没用 原帖在这: 【专题】下载频道分享季:135个经典资源大汇展 ...
茴香豆的“茴”有几种写法? spring 整合 quartz|| timer有几种方式? 我收集的:《spring定时Timer&Quartz》 代码示例,依赖spring2.x.jar quartz1.6.x.jar 相关介绍: ...
孔乙己的口头禅“茴香豆的茴字有四种写法”既体现了他的迂腐,也讽刺了封建科举制度对人的异化。 5. **写作手法**:全文采用对比和讽刺的手法,如孔乙己的高傲与他的贫穷形成鲜明对比,众人的嘲笑与孔乙己的自尊心...
他身上所体现的迂腐和自欺,如对茴香豆的执着和对“茴”字的四种写法的炫耀,虽然展现了他的学识,但也反映了他内心的矛盾和无奈。 孔乙己的善良同样令人印象深刻。他对孩子们的慷慨,以及即使在被欺负后也能保持的...
面试题:N皇后问题的另一种解法.mp4 41 .面试题:2的幂次方问题&比特位计数问题.mp4 40.面试题:统计位1的个数.mp4 39.理论讲解:位运算.mp4 38.面试题:二维网格中的单词搜索问题.mp4 37.面试题:实现一个字典树....
SSH(Secure Shell)是一种网络协议,用于在不安全的网络环境中提供安全的远程登录和其他服务。SSH脚本是利用SSH协议进行自动化任务执行的一种方式,它允许用户预先定义一系列命令,通过一个脚本来批量执行,极大地...
《Netty源码深入剖析》一书旨在帮助读者深入了解...通过以上内容的学习,相信读者对Netty有了更加深入的理解,并能够在实际工作中运用这些知识来提升项目的性能和稳定性。希望本书能够成为大家学习Netty的最佳指南!
Hystrix 是一个延迟和容错库,旨在隔离远程系统、服务和第三方库的访问点,当这些点出现故障时停止它们之间出现级联故障。通过 Hystrix,可以实现服务间的熔断、降级等策略,增强系统的稳定性和健壮性。 #### 4. ...
1 什么是性能优化\ 2 性能测试与优化\ 3 性能优化JVM篇\ 4 性能优化Tomcat篇\ 5 性能优化mysql篇\
行测精品资料
内存泄露分心工具MemoryAnalyzer 内存泄露分心工具MAT 亲测好用