Web Analytics
yangyang

码农兼一个普普通通小青年

Excel Development excel is the best!


浅谈Excel开发:四 Excel 自定义函数

我们知道,Excel中有很多内置的函数,比如求和,求平均,字符串操作函数,金融函数等等。在有些时候,结合业务要求,这些函数可能不能满足我们的需求,比如我想要一个函数能够从WebService上获取某只股票的最新价;我想要一个函数能够获取当前的天气情况,这些需求我们可以通过编写Excel自定义函数(User Define Function ,UDF )来实现,这样,在Excel中直接调用我们的自定义函数即可满足特定的业务需求,一般地,因为这种自定义函数的粒度相对较小,所以我们可以根据业务需求编写很多基础的自定义函数,然后以这些自定义函数为基础,编写各种复杂的分析报表。 编写UDF的方式有很多种,比如直接在VBA种编写自定义函数;如果您熟悉C++,可以将自定义函数编写到XLL中,不熟悉也可以使用ExcelDNA这个开源的库使用.NET技术也可以将您的代码编译为XLL;如果熟悉 …

Excel Development Excel UDF XLL ExcelDNA

浅谈Excel开发:三 Excel 对象模型

前一篇文章介绍了Excel中的菜单系统,在创建完菜单和工具栏之后,就要着手进行功能的开发了。不论您采用何种方式来开发Excel应用程序,了解Excel对象模型尤其重要,这些对象是您与Excel进行交互的基石。据不完全统计,Excel的对象模型中有270多个对象及超过5000多个属性和方法。通过这些对象及方法,您可以充分利用Excel来定制化您的插件。 Excel的所有对象,事件,方法和属性在这里不可能全部介绍完。本文简要介绍一下Excel的整体文档对象模型,以及一些比较重要的,平常开发中需要频繁接触到的对象,属性,事件及方法,如Application,Range对象等,使您对Excel的整个结构有一个简单的了解。后面在编程中遇到问题了,您可以快速定位知道需要设置或者调用哪个对象及其方法,然后根据关键字到Google或者MSDN上方便查找。本文大部分内容参照MSDN上的这篇文章 …

Excel Development Excel Object Model

浅谈Excel开发:二 Excel 菜单系统

在开始Excel开发之前,需要把架子搭起来。最直接的那就是Excel里面的菜单了,他向用户直观的展现了我们的插件具有哪些功能。菜单出来之后我们就可以实现里面的事件和功能了。Excel菜单有两种形式,一种是Excel 2003及之前的传统菜单样式,一种是Excel 2007及之后的Ribbon菜单。本文首先讲解Excel 2007中菜单的创建,包括使用Visual Studio可视化设计菜单,菜单的RibbonXml配置,然后讲解如何在Excel 2003中创建自定义菜单。最后演示如何使用SharedAddin技术将两者结合起来,即在2003版本中显示原始的菜单样式,在以2003上版本中动态加载Ribbon菜单,从而达到版本的兼容。 一 Excel 的Ribbon菜单及Ribbon Xml文件 要演示菜单的创建,我们首先创建一个VSTO程序,如图在VS中创建一个Excel外接程序: …

Excel Development VSTO Shared Add-in Ribbon XML

浅谈Excel开发:一 Excel 开发概述

做Office相关的开发工作快一年多了,在这一年多里,在插件的开发中遇到了各种各样的问题和困难,还好同事们都很厉害,在和他们的交流讨论中学到了很多的知识。目前Office相关的开发资料是比较少的,最最开始的时候,我看的是一本英文资料,然后再就是MSDN上面去提问了。所以我想写一点东西,让大家也少走一些弯路。 这篇文章就简要介绍一下Office开发的一些相关的知识,使大家对这个有一个大体的了解。 首先来看一看Office 的开发方式。 一 Office开发方式 1 VBA (Visual Basic Application) VBA是一种Visual Basic的宏语言,它应该是最早的Office提供定制化的一种解决方案,在1994年发行的Excel 5.0版本中,就具备了VBA的宏功能。从名字上似乎可以看出他是VB的一个子集,和Visual …

Excel Development VSTO Shared Add-in

一次Debug经历

周五天晚些时候,部门发布了一个“世界末日”版本的产品,我们小组参与了其中Office插件的开发工作。这算是一个比较重要的节点。产品发布后,在同事机器上安装部署之后,Office插件发现了一个比较严重的Bug,就是用户在打开一个已经存在的Excel文件的时候,我们的插件不能正常加载,因为之前开发调试的时候,都是直接选择Excel软件为启动项的,这样,每一次都是直接打开的Excel程序,而不是一个文件。在检查这个Bug的时候又发现了另外一个比较严重的Bug,就是Excel关闭之后,任务管理器中的Excel.exe这个进程没有关闭,这个Bug在开发阶段我注意到了,以为是开发阶段调试的时候才有的,所以没有太在意。于是乎跟领导们反应之后,领导过来说这个Bug能不能修复,最好能修复,不可以的话,叫测试那边注意一点儿就可以。我说可以,但是需要一点儿时间。我和另外一个同事开 …

Excel Development Shared Add-in