[VSTO系列]二、简单的UI设计/QQ联系人导出(上)

接上一篇:http://www.cnblogs.com/longqi293/archive/2010/12/08/vstoforexcel1.html

在日常的生活中,QQ已经是联系我们人际关系的一条重要纽带,就像我们的手机,手机中存在很多联系人,并且现在提供了很多软件对不同平台的手机作联系人的备份,可是对于QQ呢?除了会员以外,好像要导出联系人进行备份有点麻烦。在这里,结合我们的文章,给出一个比较“牵强的”解决方案,主要针对于非QQ会员的朋友。

当然,在这里主要还是为了介绍VSTO For Excel这门技术,也许这个例子举得不很恰当,也请大家多多包涵,毕竟条条大道通罗马……

回到今天的主题,我们还是进一步的了解VSTO为我们提供的强大功能吧。

什么是Ribbon

自Office 2007以来,Ribbon UI得到了越来越广泛的应用。

Ribbon UI的历史

Ribbon主要来自于此前的Office组件。当时由于原有的界面已经过时,并且用户抱怨经常找不到要用的功能。因此微软寻求各种方法用于代替传统的基于菜单和工具栏的界面。在进行了大量的测试之后,微软的程序员找到了如今我们熟悉的Ribbon界面。

Ribbon剖析

Ribbon的菜单和按钮主要集中在程序最上方,以tab和分类的形式展现,功能的布局很有条理。某些按钮平时是隐藏的,只有需要用时才会自动出来。此外,据微软称,Ribbon专门为1024X768的分辨率做过优化。之前的ALT+F组合键打开程序菜单的方法依然有效。

 

Ribbon jack

 

为我们的Add-in添加Ribbon——

我们看到,创建好的Add-in项目只有代码文件,要添加RibbonUI界面,则需要右键单击项目,使用“添加Windows窗体”功能进行添加,如下图:

再添加好窗体后,我们双击新添加的那个文件,即可打开UI设计界面。

哈哈,是不是很熟悉啊,对了,这就是我们的Add-in插件所使用的UI,我们可以像设计桌面程序一样去做Ribbon的设计,具体内容在这里就不赘述了,大家可以自己研究研究,比较容易上手。

开始我们的VSTO代码设计——

我们的Addin程序中,我们把逻辑代码写到那个“功能按钮”之下,主要逻辑代码如下:

 

代码
private void button1_Click(object sender, RibbonControlEventArgs e)
{
Excel.Worksheet activeWorksheet
= (Excel.Worksheet)Globals.ThisAddIn.Application.ActiveSheet;

foreach (Excel.Range rng in activeWorksheet.get_Range("A1:A3",Type.Missing))
{
MessageBox.Show(rng.Value2.ToString());
}
}

 

看了很简单吧,如果在这里你还不熟悉Range,Excel,ActiveSheet这些关键词,建议你先回到上一篇文章中,查阅一下Excel对象模型的相关内容,相信就能很快回忆起来了http://www.cnblogs.com/longqi293/archive/2010/12/08/vstoforexcel1.html

 

在这里,我们的代码主要完成了一件事情,就是当用户点击那个功能按钮后,我们就显示单元格A1到A3的内容。那结果是不是如我们所说呢?在调试后,的确能够达到效果。那么,我们今天的路就走完一半了。来回顾一下:

1、  我们知道如何为Add-in项目添加RibbonUI

2、  知道了用代码获取某一区域的单元格内容

那接下来,我们就跳出技术的圈圈,看看QQ联系人这回事儿吧。

怎么导出联系人?

这是个问题,方法种类繁多,会员直接跳过……在这里我提供一个思路吧,QQ邮箱想必大家都用过,他有一个同步联系人的功能,最后还有一个导出联系人的功能,看了我是很激动啊。

经过试验,导出的这份QQ邮箱联系人的Excel文档,包含了我所有QQ联系人的邮箱号,刚好大家的邮箱号基本都是用QQ号做的账户名……

恩,到这里,这篇文章就写到这吧。暂且卖个关子(其实是工作太忙了,写不完,不好意思啊……)

下一篇文章,将会和大家一起实现那个联系人的处理功能,谢谢大家。如果平常有什么联系人导出导入的工具提供就好了,发现如果不给疼讯缴纳几个会员费,这个功能怎么就那么麻烦呢……求免费好用的工具…………

posted @ 2010-12-22 11:33  Jack Fan  阅读(3310)  评论(4编辑  收藏  举报
TOP