Web Analytics
yangyang

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

All Posts


浅谈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

[译]Kinect for Windows SDK开发入门(十八):Kinect Interaction交互控件

本文译自 http://dotneteers.net/blogs/vbandi/archive/2013/03/25/kinect-interactions-with-wpf-part-i-getting-started.aspx,建议直接点击查看。 今年三月份发布了1.7版本的SDK,这一版本的SDK较前一版本最大的变化是添加了Kinect Interactions 和 Kinect Fusion。Kinect Interactions 提供了一些新的带有姿势识别的控件如 push-to-press 按钮, grip-to-pan 列表控件, 而且支持多用户,同时二个人进行的交互,这些新添加的控件能够非常方便的集成到应用程序中,极大的简化了开发和调试过程。 1.7 SDK中新增的第二个功能是去年在Build 2012大会上提到的Kinect Fusion,他能 …

Kinect Interaction Kinect SDK

Kinect开发文章目录

整理了一下去年为止到现在写的和翻译的Kinect的相关文章,方便大家查看。另外,最近京东上微软在搞活动, 微软 Kinect for Windows 京东十周年专供礼包 ,如果您想从事Kinect开发,没有设备的话,有兴趣可以上去看看。 如果您在开发中遇到问题,可以到微软MSDN K4W板块提问,那儿有专门的工程师回答您的问题,另外我新建了一个QQ群 254015296 ,如果您有兴趣也可以加一下一起讨论共同学习。以下所有和Kinect开发相关的文章,希望对您有所帮助。 1. [译]Kinect for Windows SDK开发入门(一):开发环境配置 2. [译]Kinect for Windows SDK开发入门(二):基础知识 上 3. [译]Kinect for Windows SDK开发入门(三):基础知识 下 4. [译]Kinect for …

Kinect SDK

浅谈并发与并行(一)

一、引言 前天在GitHub上看到一幅图,问如何向五岁的小孩讲解并发和并行。然后有人以这幅图做答: 这幅图有点儿意思,用咖啡机的比喻来形容并发和并行,从中最直接的体会是,并发是有状态的,某一线程同时执行一个任务,完了才能进行到下一个,而并行是无状态的。 近些年,计算机的处理能力成指数能力增长。处理能力也越来越快,以前的一些工作站现在都可以移植到笔记本电脑或者手持设备上。但是近几年,由于处理器的处理速度已经达到了极限,所以处理器开始向多核方向发展,而提高程序性能的一个最简单的方式之一就是充分利用多核处理器的计算资源。但要编写利用多核处理器处理的程序并不那么简单。所以一些函数是编程语言,如F#,Scala,Erlang等又开始流行起来,因为他们带来的不可变性,递归思想等在一定程度上简化了并行和并发编程。 本文和下文从任务并行和数据并行两个方面,简要讨论 …

Concurrent Parallel QuickSort .NET

Kinect for Windows SDK开发学习相关资源

Kinect for Windows SDK(K4W)将Kinect的体感操作带到了平常的应用学习中,提供了一种不同于传统的鼠标,键盘及触摸的无接触的交互方式,在某种程度上实现了自然交互界面的理想,即通过手势,语音即可向应用程序发出指令。目前K4W SDK已经更新到了1.7版本,新的Xbox One上面的Kinect功能更强大,预计明年会退出新的K4W的传感器及相关开发的SDK,届时动作捕捉会更加精细和强大。 K4W SDK中的内容不是特别多,学习相关开发只需要掌握简单的.NET或者C++语法即可,但是如果学深入的话,可能需要掌握一些模式识别,图像处理方面的知识,尤其是需要从传感器取得的影像数据或者深度数据中提取一些有用的操作的时候。不过微软提供的K4W已经封装好了一些操作,如面部识别,语音识别,Fusion,骨骼追踪等,能够满足大部分的应用开发的需求和场景了。 本文主 …

Kinect SDK

MSDN Kinect for Windows SDK中文版论坛开放了

昨天MSDN上K4W开发相关的中文版论坛正式开放了,地址 http://social.msdn.microsoft.com/Forums/zh-CN/home?forum=k4wdevelopment 。虽然我的博客上有些Kinect开发相关的文章,不过如果大家有什么问题,还是建议去MSDN的K4W上去提问,那儿有专门的工程师给大家解答问题。我也是那个板块的版主,如果有谁对这个有兴趣,也可以申请版主或者副版主,谢谢。。。


DataTable数据检索的性能分析

我们知道在.NET平台上有很多种数据存储,检索解决方案-ADO.NET Entity Framework,ASP.NET Dynamic Data,XML, NHibernate,LINQ to SQL 等等,但是由于一些原因,如平台限制,比如说必须基于.NET Framework2.0及以下平台;遗留的或者第三方数据接口采用的就是DataTable等等,仍然需要使用DataTable作为数据存储结构。另一方面DataTable比较容易使用,一些数据访问的接口可能直接采用了DataTable结构。在使用DataTable进行数据检索的时候,有一些需要注意的地方,这些地方会严重的影响对数据的检索效率。 本人最近工作中需要对大量的DataTable进行拼接。接口的数据是以DataSet然后里面放DataTable的方式提供的,暂不提是否合理,同时进行多个请求的时,服务端会返回 …

.NET Performance Optimizing DataTable