【手机软件】symbian系统开发教程_第1页
【手机软件】symbian系统开发教程_第2页
【手机软件】symbian系统开发教程_第3页
【手机软件】symbian系统开发教程_第4页
【手机软件】symbian系统开发教程_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

symbian系统开发教程(一)第一章:SymbianOS简介作者:谢兴enigma19971@1.1.Symbian系统简介当前有很多手机运行SymbianOS,数量甚至超出您的想象。到目前为止已经有超过7500万、100多种型号的手机运行SymbianOS。这些电话大部分都形态迥异:有的配有键盘,有的采用笔控输入;有的配备TFT彩色屏幕,有的则配备黑白LCD显示屏;有的擅长于音乐播放,有的专注于电子游戏、图像处理甚至电视功能;有的手机面向个人消费者,有的专门针对商务用户;有的是为单手操作设计的,有的是为双手操作设计的——种类繁多不一而足。SymbianOS手机受到广大消费者的喜爱。仅2005年就售出3400万部SymbianOS手机——这相当于每不到一秒钟就有一部SymbianOS手机被出售。网络运行商同样青睐SymbianOS手机。全球有250多个移动电话网络运行商选择了SymbianOS手机。所有这些都表明现在市面上有成千上万的手机是基于SymbianOS的,所以为symbian系统开发的应用程序会得到广泛的应用。现在已经有5400多种商业性应用软件可供SymbianOS手机应用。本教程旨在为您提供一些编写SymbianOS应用程序的入门知识。希望它会对您有所裨益,为开发SymbianOS应用程序打下一个良好的基础。1.2.开发语言从开发初期起,SymbianOS就是专门为移动电话而设计的,因此从弹性的电源管理(resilientpower-management)到内存资源的谨慎使用,全都是为了满足手机操作系统的特定需求。作为SymbianOS的开发人员,您将受益于SymbianOS这样一个专门为移动设备而创立并随着市场一起发展的开发平台。SymbianOS最“基本”的编程语言是一种改进的C++。SymbianOSC++经过特殊设计与优化,以利于降低手机电池能耗和内存使用。比如,为了节约电池耗电,所有SymbianOS程序都是基于事件(event-based)的,而当没有任何程序进行事件处理时,CPU就进入休眠。您在开发软件时也可以使用Java、Python、.NET(使用VisualBasic和带AppForge’sCrossfire的C#)、Perl、OPL和AdobeFlash,但是SymbianOSC++是最强大(它允许最大限度的利用操作系统提供的所有功能)也是最快捷(因为它直接以编译码运行,而无需在运行时进行解译)的语言。这也就是为什么我们在本书中选择C++来向您演示如何进行SymbianOS开发的原因。好了,闲言少叙,让我们言归正传。1.3.准备工作首先您需要有一台电脑能创建并测试在SymbianOS手机上运行的应用程序。这也就是说电脑要有一个较快的CPU处理器(至少1.5GHz)和相当大的RAM(512MB或更大)以及一个大容量硬盘(至少有2GB剩余空间)。该电脑必须能运行Windows2000或XP操作系统。然后您需要开发软件来帮助您编写代码并进行编译。这可通过包含编辑程序(editor)、编译程序(compiler)和链接程序(linker)的集成开发环境(IDE)来完成。在这推荐两种适合SymbianOS程序开发的IDE。对于开发非商业用途的SymbianOS应用程序,Nokia的Carbide.c++Express版本是最理想不过了,它建立在EclipseIDE的基础上,供免费下载。对于使用VisualStudio.NET2003的程序员来说,也可选择Carbide.vs。这是一套基于MicrosoftVisualStudio.NET2003IDE的工具,用于开发S60和Series80软件。您还需要软件开发包(SDK),专门用来编写和创建SymbianOS应用程序。基于不同手机类型,有不同版本的SDK供选择,具体使用哪个SDK请见以下几页的说明。如果您还没有决定具体的手机类型或平台而无法确定选择哪个SDK,我们建议您一开始可使用S60和UIQSDK。如果您想为最新款的手机(如Nokia3250、E60、E61、N71、N80、N91、N73或N93)编写应用程序,那就选择基于SymbianOSv9的SDK(UIQ3或S60第三版),要么您就选择更低版本的SDK(UIQ2.1或S60第二版)。不同版本的SymbianOS之间有什么区别?主要的分别是,在SymbianOS9.1版本之前,为较低版本的SymbianOS编写的软件往往可在较高版本上运行,但9.1版本与以往的版本截然不同。如要运行在9.1版的SymbianOS上,应用程序必须稍加修改并进行再次编译。接下来您需要下载您所选择的IDE和SDK。以下章节将向您介绍如何在互联网上找到这些工具。1.4.S60平台S60平台是一个完整的应用程序包(package),用户接口和构建于Symbian系统技术的开发工具。S60用户接口(UI)经过精心的设计,方便用户使用,便于单手操作。从用户的角度看来,该平台最大的特点在于它的用户界面:大的彩屏和各种输入键(两个软件键,五方位的导航键,和几个专用的键)。单手操作和大彩屏的优点能使应用程序开发者提供更有吸引力的内容和提供更方便的导航功能,同时增加用户使用手机时的愉快体验。目前,s60平台上已经存在各种各样的应用软件.其中最重要的有:高级智能电话应用程序,个人信息管理应用程序(PIM)(例如,电话簿,日历,相册),短信,网页浏览,电子邮件和应用程序安装引擎,它能够让您自由地从电脑上下载软件到您的手机上。S60第三版本支持两种不同的外观:ØQVGAPortrait(240x320)ØQVGALandscape(320x240)1.5.如何选择SDK基于SymbianOS的手机外型各异,用户界面(UI)也不尽相同。为了给特定的用户界面编写应用程序,您必须选择特定的SDK(尽管应用程序的引擎往往与用户界面无关)。大部分运行SymbianOS的手机采用的是S60用户界面并使用键盘操作。S60已经发布了一系列版本,选择正确的S60SDK和相应的SymbianOS十分重要:S60第三版–SymbianOSv9.1S60第二版功能包3–SymbianOSv8.1S60第二版功能包2–SymbianOSv8.0aS60第二版功能包1–升级SymbianOSv7.0sS60第二版–SymbianOSv7.0sS60第一版–SymbianOSv6.1您可在以下网站查到每一系列S60SDK所包含的手机型号列表:/developer/sdks/sdks_series60.asp其它大部分基于SymbianOS的手机采用笔控输入的UIQ用户界面。以下网站列出了基于各版本的UIQSDK的手机机型/developer/sdks/sdks_uiq.asp您可以到以Nokia的网站下载SDK1.6.Carbide.c++集成开发环境(IDE)前面已经提到了各种集成开发环境,这里我们主要介绍Carbide.c++的集成开发环境。Carbide.c++的集成开发环境(IDE)基于Eclipse集成开发环境版本3。增添了能使Eclipse处理symbianc++源文件和编译Symbian工程的插件。这些插件分为以下几类:ØC/C++开发工具箱(CDT)。这是一个使得Eclipse管理和编译symbian工程的工具集ØSymbian插件。这些插件由symbian开发,使得eclipse能够处理EclipseC++的概念,同时提供对Symbian操作系统软件开发工具箱和Symbian工具链的支持。ØNokia插件。由Nokia开发,提供对Symbian操作系统工具箱的更多支持。插件实现了C++编译器,symbian系统的调试器,并且加入了Carbide.c++系列产品的商业版本的高级特性。很明显,因为Carbide.c++是基本的Eclipse集成开发环境,开发者可以进一步定制其它的商业或免费的插件,比如说,一个版本控制系统,一个UML建模系统等。Carbide.c++有自己的安装程序,所以安装比较简单。在启动这个产品之后,用户看到的集成开发环境和Eclipse开发环境十分类似,如下图所示,因为Carbide.c++是设计用于处理symbianc++应用程序的,所以其集成开发环境的左边显示的是c/c++工程视图,这个视图用于显示构成一个典型symbianc++工程源文件、头文件,资源文件。关于eclipse平台和插件的相关知识,不是本教程所关心的重点,有兴趣的读者可参考相关的其他著述。1.7.开发环境的构建Ø第一步:安装JDK5.0Ø第二步:安装ActivePerl(需要5.6.1以上版本)Ø第三步:安装SymbiansdkØ第三步:安装Carbide.c++1.2版本。Carbide有不同的版本。其中Express版本是免费安装的,但不支持UI设计功能,也不支持在手机上调试的功能。注意:这几个文件需要放在一个目录下面。否则,在编译程序的过程中,可能会出现难以预料的错误。1.8.文件目录的布局在动手写代码之前,我们有必要了解工程的文件组织结构。如果您看过SDK中的例子工程,或是用IDE的工程向导创建一个UI应用程序,您就会了解一个典型的工程文件结构布局是怎样的。当工程增长到一定程度的时候,好的文件目录布局将有助于帮助跟踪代码的变更。工程中包含了各种不同类型的文件,包括源文件和其他类型的文件,我们通常将这些文件分开来存放,下面我们简短地介绍这些文件。资源文件,例如.bmp或.wav文件,通常被单独地存放在一个目录下面。测试代码也会和产品代码分开来存放。所以,一个典型的UI应用程序会有如下这样一些目录结构和文件。文件目录存放文件类型data(S60)存放资源规格文件(.rss)Gfx(S60)应用程序资源文件,例如图片和声音文件。Group该目录存放工程文件(例如.mmp和bld.inf)Images(UIQ)应用程序资源文件,例如图片。Inc该目录存放头文件(typically.h,.hrh和.inl)rsrc(UIQ)存放资源规格文件(.rss,.ra)src该目录存放.CPP文件Test存放测试代码在group目录下面,有两个重要的文件,这两个文件都与创建Symbian工程相关:如果,需要在命令行编译工程,必须创建如下两个工程文件:·工程定义文件(.mmpfile),这个文件对要编译的工程进行描述,并定义要构建的资源文件。该文件是环境无关的,编译工具用它来生成针对各种目标环境下的makefiles文件。·组件描述文件(bld.inf),这个文件列出了一组相关的工程,并包含一些编译指令.CodeWarrior和Carbide.c++都能够导入工程定义文件,并用它来在IDE环境下创建工程。下面详细描述这些文件的格式。Ø组件(component)描述文件:bld.infBld.inf是一个文本文件。它的内容非常繁琐,主要包括工程定义文件mmp和其他的任何编译工具所需要的文件。该文件分为多个节,其中,mmp文件列表在PRJ_MMPFILES节中。即使一个工程文件只包含一个mmp文件,bld文件仍然是必须的。下面是一个典型的bld.inf文件。//目标平台PRJ_PLATFORMSWINSCWGCCE//从工程中输出的文件PRJ_EXPORTS//None//工程定义文件PRJ_MMPFILESfilebrowseapp.mmp//工程定义文件(测试代码用)PRJ_TESTMMPFILES..\test\FileBrowseTest.mmp在上面的例子中,如PRJ_PLATFORMS声明所示,默认情况下工程被编译为针对WINSCW平台和GCC-E平台的执行代码。当您用CodeWarrior为模拟器编译代码的时候,您使用的是WINSCW平台,WINSCW的来由是,最终的代码运行于Windows,单线程模式(inaSingleprocess),并用CodeWarrior编译。平台的名称用来标识最终的可执行代码所运行的那个平台。所以,当上面的代码被编译完后,可执行程序被放在\epoc32\release\winscw目录下面(根据是调试(debug)版本还是释放(release)版本,被放在\udeb或\urel子目录下面)。如果代码是针对手机硬件的,需要选用GCCE平台。这时,最终的可执行代码被放到\epoc32\release\gcce\目录下面。Ø工程描述文件(mmp)mmp文件中的每个语句都以一个关键字开头。下面是一个典型的mmp文件的例子。//filebrowseapp.mmpTARGETfilebrowseapp.exeTARGETTYPEexeUID0x100039CE0xE80000A6VENDORID0#ifdef__WINSCW__CAPABILITYAllFiles//AllFilesonemulatorsincenosigningisrequired#elseCAPABILITYNONE//Nocapabilitiesonhardware-otherwiseSISfilesigningisrequired#endifSOURCEPATH..\srcSOURCEFileBrowseAppUi.cppSOURCEFileBrowseDocument.cppSOURCEFileBrowseApplication.cppSOURCEFileBrowseBaseView.cppSOURCERFsEngine.cppSYSTEMINCLUDE\epoc32\includeUSERINCLUDE..\incSOURCEPATH..\dataSTARTRESOURCEfilebrowseapp.rssTARGETPATH\resource\appsHEADERENDSTARTRESOURCEfilebrowseapp_reg.rssTARGETPATH\private\10003A3F\appsENDSTARTRESOURCEfilebrowseapp_loc.rssTARGETPATH\resource\appsLANGSCHEADERENDSTARTBITMAPfilebrowseapp.mbmTARGETPATH\resource\appsHEADERSOURCEPATH..\gfxSOURCEC16folder.bmpSOURCEC16file.bmpSOURCE8mask.bmpENDLIBRARYeuser.libefsrv.libcone.libeikcore.libeikcoctl.libeikdlg.libegul.libeikctl.libapparc.libLIBRARYbafl.libLIBRARYavkon.libCommonEngine.lib下面简单地描述每个关键字的作用:TARGET该关键字指明了目标文件(exe或dll文件)的名称。TARGETTYPE该关键字指明了工程所产生的目标文件的类型,在上面的例子中,我们生成了一个可执行文件。在大多数情况下,目标文件的类型为dll,exe或是其他的插件(plugin)。UID目标(通常指可以执行的.exe或.dll文件)具有三个UID,这些UID用来标识组件,第一个UID是无须指定的。因为它是编译工具根据目标的类型自动分配的。所以这里所指定的实际上是UID2,这个值进一步指明了目标的类型,上面例子中,值(0x100039CE)指明了目标文件是一个应用程序,Symbian系统使用这个值来标识所有的应用程序。下一个指定的UID对每个应用程序来说都是唯一的。它标识了这个应用程序的注册资源文件和该程序的安装包文件.pkg。所以为了保证这个值的唯一性,您必须要向Symbian申请这个UID,由他们负责从数据库中为您的应用程序分配一个UID。可到Symbian的网站上了解更多的相关信息。有一些UID的值是用来测试的,例如SDK中的例子:文件系统浏览应用程序(filesystembrowser)所使用的UID为0xE80000A6,您也可以在测试您的应用程序的时候使用这个值,但注意,不要在您的最终产品中使用它。SECUREID这是个可选的关键了,上面的例子中没有出现。该关键字为应用程序定义了安全标示符,用来指明这个程序可以访问哪个私有的目录。如果该关键字没有使用,用UID3来代替该关键字。VENDORID该关键字是在SymbianOSv9.1版本新增的。用来指定软件提供商的ID号。该关键字不是必须的,可省略。CAPABILITY这是SymbianOS9.1新增加的关键字。该关键字指明了应用程序的权限(或称作能力,如:查看系统目录)。大上面的例子中,应用程序在模拟器上和在手机上被分配了不同的能力(capability)。在模器上,该程序被赋予了AllFiles的权限,比在手机上运行时,能看到更多的私有文件系统的区域。没有被赋予AllFiles能力的程序不能看到\Sym目录下的内容。应用程序只有在经过认证(certificate)以后才能获得AllFiles的能力。关于认证和签名的内容,我们在这一章的后面会讲到。SOURCEPATH和SOURCESOURCE关键字指明了有哪些源文件和资源文件需要编译,而SOURCEPATH关键字指明了这些文件的位置。这个位置既可以是相对路径(相对于mmp文件),也可以是绝对路径。SYSTEMINCLUDE这个关键字指定了系统头文件的位置,系统头文件通常用#include<>语句包含。USERINCLUDE该关键字的作用类似于SYSTEMINCLUDE,它指明了在用户自定义头文件所在的位置。STARTRESOURCE…ENDSTARTRESOURCE关键字表明了一个信息块的开始,这些信息指明了如何编译资源文件。END标示该信息块结束。TARGETPATH该关键字用来指定被编译后的资源文件的位置。注意:由于安全方面的考虑,所有的可执行代码(exe或dll)都从手机上的\sys\bin\目录运行。可执行代码不需要用该关键字指定位置。TARGETPATH关键字仅仅用来指定编译后的资源文件的位置。HEADER这是一个可选的关键字,当它被使用的时候,系统将会在\epoc32\include\路径下创建资源头文件(.rsg)。这个头文件包含了允许以C++代码引用特定资源的标识符。LIBRARY这个关键字列出了应用程序需要链接的库文件。STATICLIBRARY该关键字用来指定需要被静态链接的库文件(库文件中的代码会被链接到您的程序中,而不是需要时才装载到内存)。STARTBITMAP…END这一节包含了应用程序图标所使用的位图(bitmap),以及如何将这些位图编译成.mbm(Symbian系统专有的图像格式)的方式。EPOCSTACKSIZE该关键字是可选的,我们上面的例子中并未用到。在以前的SymbianOS版本中,缺省的栈大小为0X5000字节。在v9.1版本中,缺省值为0x2000。为了增加栈的大小,可以使用该关键字。例如:EPOCSTACKSIZE0x5000。要注意的是,对栈设置仅仅对真实设备有效,但对模拟器无效。EPOCHEAPSIZE该关键字也是可选的,我们上面的例子中并未用到。这个关键字指定了应用程序可以使用的最大、最小堆空间。缺省情况下,4K为最小的尺寸,1M为最大的尺寸。1.9.第一个程序:HellowWorld1.9.1.创建工程运行Carbide集成开发环境,在菜单栏上选择file->New->SymbianOSC++project,出现如下图所示的对话框:我们选择带用户界面设计器的图形用户界面应用程序(CarbideExpress版本不支持用户界面设计的功能)。然后点击“下一步”按钮。出现下面的对话框:用户选择一个sdk的版本(笔者的机器上安装的是s60_3rd_FP1版本的sdk)。继续下一步:按下一步,继续:选择一个空的界面,这样我们可以自由地在上面添加控件。下面的步骤一直按“下一步”,直到完成。1.9.2.在模拟器上运行和调试工程建立完成后,就可以构建(build)工程了。在将程序放到手机上运行之前,我们通常需要先在模拟器上运行、调试程序。模拟器是SDK附带的一个软件,能够模拟真实手机的运行情况。在工程透视图中,选中工程,点击右键,将活动构建设置为EmulatorDebug(Winscw)。如下图所示:这样,编译出来的程序版本才是针对模拟器的。设置后,可以构建(build)工程了:在工程透视图中选中工程,点击右键,选择“buildTargetOnly”(只编译模拟器版本,节省时间)。最后,点击工具栏上的运行按钮,选择RunAs->1RunSymbianOSApplicationCarbide启动模拟器,这个过程需要持续几十秒到几分种,依赖机器的配置。在模拟器启动后,点击模拟器上的软件键,模拟器会出现下面的界面:选择Installed选项后,可以看到应用程序的图标:在模拟器上点击按钮,运行该程序。1.10.在手机上运行和调试1.10.1.基本概念能够在模拟器上运行、调试程序后,您可能想要在真实的手机上运行您的程序。但在这之前,先需要搞清以下几个基本概念:ØGCCE版本和ARM版本:在真实设备上运行的程序版本不同于我们在模拟器上运行的程序版本,在设备上运行的版本必须是GCCE版本或ARM版本。其中GCCE版本是用SDK自带的编译器的,使用它不需要付费,而ARM版本是专门针对ARM平台的,代码经过优化,性能优于GCCE版本的程序,但需要付费。Ø.sis文件和.pkg:创建应用程序的GCCE版本以后,需要创建一个Symbian安装文件(.sis)。从本质上来讲,.sis文件只是一个压缩文件,它包含了组成应用程序所需的exe,dll,rss文件,和一些手机接收应用程序时所必须的信息(例如:语言种类,应用程序的UID)。现在的问题是,我们根据什么信息来创建这个sis文件呢?答案在于pkg文件,在创建这个文件之前,先需要创建一个pkg文件,pkg文件中包含了一些有用的信息,包括将工程文件拷贝到手机的哪个目录下面,程序的版本号等。Ø签名(sign):在开发s603rd版本的应用程序时,所有的.sis文件在安装到手机之前,必须被签名。如果您的程序没有用到capability或只用到了对所有的用户都开放的功能(utility),您可以使用自签名认证(SelfSignedcertificate)。当在自己的手机上调试程序时,这种方法特别管用。Ø机上调试代理(on-devicedebugagent):如果想要在真实的手机设备上调试程序,需要在手机上安装机上调试代理,这个手机上的代理程序通过蓝牙或USB串行链路与调试器通信,在Carbide.c++调试器和目标机器之间的起到接口的作用。调试代理提供以下功能:1.运行在Symbian系统上作为调试代理。2.为Symbian系统提供一个稳定的集成的接口3.能被用来在真实的设备上调试应用程序4.能烧入到系统镜像中,或是被安装的sis文件。使用机上调试代理,我们可以使用Carbide.c++集成开发环境来调试运行在手机硬件上的应用程序,这使得调试过程更为容易。机上调试代理可以在所有的S603rd版本的设备上工作。包括在UIQ2nd版本和UIQ3rd版本的设备上。1.10.2.编译、运行应用程序的手机版本在清楚这些基本的概念后,下面我们看看,如何编译和运行GCCE版本的应用程序:1.编译这个应用程序的GCCE版本.2.创建Symbian安装文件(.sis)。3.给.sis文件签名。4.在s60手机上安装这个sis文件。5.运行该应用程序。首先,我们按下面的步骤,在Carbide中,编译GCCE版本和创建sis文件。1)从菜单上选择Project>Properties选项.2)在属性对话框上,点击C/C++Build。3)从Configuration下拉菜单中选择"S603.0GCCEUREL"。4)点击OK。5)从菜单栏上点击Project>BuildProject。如下图所示:Carbide根据工程的设置,创建了一个能在手机上运行的版本。如果编译的过中没有出错,可以在目录\Symbian\9.2\S60_3rd_FP1\Epoc32\release\gcce\urel中找到已经编译好的可执行文件。然后,可以进行下一步:生成sis文件。打开工程视图,找到sis文件夹中的.pkg文件,点右键,在弹出菜单中选择:buildPKGfile。如下图所示:如果边编译的过程没有出错,可以在sis文件夹中找到经过签名的.sis文件和扩展名为.cer的证书文件和扩展名为.key的密钥文件。这两个文件是Carbide自动生成的。将经过签名的.sis(或.sisx)文件通过USB接口下载到手机(WAP,邮件附件,红外,蓝牙),然后用文件管理器安装,如果安装的时候没有错误提示,我们就可以在手机上运行程序了。1.10.3.在手机上调试在真实的手机设备上调试比在模拟器上调试更加准确,而且不必使用昂贵的硬件调试设备。前面我们提到过,在手机上调试,需要安装调试代理,有两不同的机上调试代理,分别为:ApplicationTRK和SystemTRK·ApplicationTRK—仅仅支持应用程序的调试。·SystemTRK—不但支持应用程序的调试,还支持有限的ROM调试。设备制作商可用它来调试设备驱动程序。现在,我们来看看:Ø如何在手机上安装调试代理软件打开..Carbide\plugins\com.nokia.Carbide.trk.support_9,\trk\s60目录,可以看到有一个s60_3_1_app_trk_2_7.sisx文件,该文件就是调试代理(debugagent)的安装程序,下面我们通过USB接口(或红外、蓝牙)将这个程序下载到手机上安装。步骤如下:1.将电脑和手机设备通过USB接口连接。在手机识别出USB连接线后,设置手机,让它从PC上接收文件。1)选择USBMode>FileTransfer,然后按OK键,这时有通知消息出现:手机将处于离线状态。2)按OK软件键确认该消息。2.将SISX文件拷贝到MMC卡。3.用“安全删除硬件”的方式断开手机和PC之间的USB连接。4.在手机上,用文件管理器安装SISX文件。Ø在安装好调试软件后,现在就可以开始调试程序了。PC和手机的通信接口有两种:蓝牙和USB,由于大多数的PC机中只有USB接口,下面我们就以USB连接方式来调试程序。1.安装最新的USB连接软件,例如,S60设备使用的NokiaPC套件。2.用USB线连接Pc和手机。3.目标设备被连击后,在S60设备上,选择PC套件作为USB连接模式。4.下载APPTRK或SystemTRKSISX文件到手机上。(如果在已经下载安装过该调试代理,这一步可省略)5.在PC上,打开设备管理,找到S60手机USB的条目,如下图所示:记下端口号(在我们的例子中为COM5),后面我们要用到。在手机的USB模式列表上选择PC套件模式。然后在手机上启动AppTRK,将连接方式设置为USB,如下图所示:选择“back”,然后重新启动AppTRK。在Carbide集成开发环境上(IDE),选择工具栏上的调试按钮,选择“debug”,如下图:这时,会启动一个“调试面板”,我们选择第一项:“SymbianOSAppTRK”,双击此项,将会生成一个启动配置项(launchConfiguration),在这个面板的右边有一些关于调试的选项,如下图所示:安装要求填写这些配置项,这一步比较容易,有两点要注意的是:Connection面板中,Serialport选择的值(这里为com5)必须是我们前面在设备管理器中所记录下来的值。另外,在Installation面板中,需要指明要安装的文件,这个文件就是我们在前面生成的经过签名的sis文件,如下图:1.11.用命令行方式编译、运行GCCE释放版本下面我们以SDK自带的helloworldbasic工程为例子,演示如何用命令行的方式来编译和运行GCCE版本的程序。Ø第一步:创建GCCE释放版本:1.打开一个命令行窗口。2.用cdgroup进入工程的group目录。3.输入下面的命令:bldmakebldfiles。4.再输入:abldbuildgcceurel或abldgcceudeb(该命令产生手机上的调试版本)。上面的编译脚本创建了一个GCCE版本的应用程序,在下面的目录可找到该文件:Epoc32\release\gcce\urel\Ø第二步:创建sis文件我们通过使用makesis工具来编译.pkg文件得到.sis文件,在我们的例子中,该pkg文件位于例子中的\sis目录下。1.打开命令行窗口,并进入到HelloWorldBasic.pkg文件所在的路径:<S60_SDK_installation_directory>\Symbian\9.2\S60_3rd_FP1\S60ex\helloworldbasic\sis2.输入makesishelloworldbasic.pkg命令:3.我们可以看到,在该文件夹下生成了一个helloworldbasic.SIS文件。Ø第三步:用signsis工具为sis文件签名在进行签名之前,我们需要两个文件:私钥文件和自签名证书(selfsignedcertificate)文件。这涉及到密码学的知识,读者可自己参考相关著作。这里,我们用只是makekeys工具生成这两个文件。makekeys工具在下面的目录可找到。<SDK_installation_directory>\Symbian\9.2\S60_3rd_FP1\Epoc32。1.为了产生私钥文件和自签名认证,在命令行下敲入以下命令:运行完该命令后(可能要花几分钟的时间),可以看到,在该目录下产生了两个新的文件:mykey.key和mycert.cer。2.给sis文件签名,在命令行下敲入以下命令:Ø第四步:在手机上安装sis文件。这一步比较简单,仅仅将准备好的sis文件下载到您的手机。这个过程可以通过不同的数据通道完成(WAP,邮件附件,红外,蓝牙,USB接口),采用何种方式,取决于您的手机。1.12.导入工程如果symbianc++的开发者在自己的计算机上已经有了各种各样的symbian工程,并且用codewarrior或者命令行工具链编译过该工程,他们会发现可以很方便地移植这些工程到Carbide.c++,不需要创建一个新的工程和手工插入这些源文件。Eclipse实现了从集成开发环境导入和导出信息的框架,并通过向导来实现这个过程。Carbide.c++也实现了这种工具。从菜单栏选择File->import菜单项,用户就启动了一个有很多选项的导入面板。如下图所示:例如:如果我们想导入sdk中自带的filebrowser的例子工程,我们在导入面板中选择SymbianOSBld.inffile选项,然后点击下一步,这时会启动“文件导入向导”对话框,在对话框中输入filebrowser工程中的bld.inf文件(通常,这个文件在group目录中)。然后,一直点击“下一步”按钮,直到这个过程结束。如果工程被成功导入,在左边的工程视图中会出现该工程的信息。附录资料:不需要的可以自行删除Excel表格的35招必学秘技一、让不同类型数据用不同颜色显示在工资表中,如果想让大于等于2000元的工资总额以“红色”显示,大于等于1500元的工资总额以“蓝色”显示,低于1000元的工资总额以“棕色”显示,其它以“黑色”显示,我们可以这样设置。1.打开“工资表”工作簿,选中“工资总额”所在列,执行“格式→条件格式”命令,打开“条件格式”对话框。单击第二个方框右侧的下拉按钮,选中“大于或等于”选项,在后面的方框中输入数值“2000”。单击“格式”按钮,打开“单元格格式”对话框,将“字体”的“颜色”设置为“红色”。2.按“添加”按钮,并仿照上面的操作设置好其它条件(大于等于1500,字体设置为“蓝色”;小于1000,字体设置为“棕色”)。3.设置完成后,按下“确定”按钮。看看工资表吧,工资总额的数据是不是按你的要求以不同颜色显示出来了。二、建立分类下拉列表填充项我们常常要将企业的名称输入到表格中,为了保持名称的一致性,利用“数据有效性”功能建了一个分类下拉列表填充项。1.在Sheet2中,将企业名称按类别(如“工业企业”、“商业企业”、“个体企业”等)分别输入不同列中,建立一个企业名称数据库。2.选中A列(“工业企业”名称所在列),在“名称”栏内,输入“工业企业”字符后,按“回车”键进行确认。仿照上面的操作,将B、C……列分别命名为“商业企业”、“个体企业”……3.切换到Sheet1中,选中需要输入“企业类别”的列(如C列),执行“数据→有效性”命令,打开“数据有效性”对话框。在“设置”标签中,单击“允许”右侧的下拉按钮,选中“序列”选项,在下面的“来源”方框中,输入“工业企业”,“商业企业”,“个体企业”……序列(各元素之间用英文逗号隔开),确定退出。再选中需要输入企业名称的列(如D列),再打开“数据有效性”对话框,选中“序列”选项后,在“来源”方框中输入公式:=INDIRECT(C1),确定退出。4.选中C列任意单元格(如C4),单击右侧下拉按钮,选择相应的“企业类别”填入单元格中。然后选中该单元格对应的D列单元格(如D4),单击下拉按钮,即可从相应类别的企业名称列表中选择需要的企业名称填入该单元格中。提示:在以后打印报表时,如果不需要打印“企业类别”列,可以选中该列,右击鼠标,选“隐藏”选项,将该列隐藏起来即可。三、建立“常用文档”新菜单在菜单栏上新建一个“常用文档”菜单,将常用的工作簿文档添加到其中,方便随时调用。1.在工具栏空白处右击鼠标,选“自定义”选项,打开“自定义”对话框。在“命令”标签中,选中“类别”下的“新菜单”项,再将“命令”下面的“新菜单”拖到菜单栏。按“更改所选内容”按钮,在弹出菜单的“命名”框中输入一个名称(如“常用文档”)。2.再在“类别”下面任选一项(如“插入”选项),在右边“命令”下面任选一项(如“超链接”选项),将它拖到新菜单(常用文档)中,并仿照上面的操作对它进行命名(如“工资表”等),建立第一个工作簿文档列表名称。重复上面的操作,多添加几个文档列表名称。3.选中“常用文档”菜单中某个菜单项(如“工资表”等),右击鼠标,在弹出的快捷菜单中,选“分配超链接→打开”选项,打开“分配超链接”对话框。通过按“查找范围”右侧的下拉按钮,定位到相应的工作簿(如“工资.xls”等)文件夹,并选中该工作簿文档。重复上面的操作,将菜单项和与它对应的工作簿文档超链接起来。4.以后需要打开“常用文档”菜单中的某个工作簿文档时,只要展开“常用文档”菜单,单击其中的相应选项即可。提示:尽管我们将“超链接”选项拖到了“常用文档”菜单中,但并不影响“插入”菜单中“超链接”菜单项和“常用”工具栏上的“插入超链接”按钮的功能。四、制作“专业符号”工具栏在编辑专业表格时,常常需要输入一些特殊的专业符号,为了方便输入,我们可以制作一个属于自己的“专业符号”工具栏。1.执行“工具→宏→录制新宏”命令,打开“录制新宏”对话框,输入宏名?如“fuhao1”?并将宏保存在“个人宏工作簿”中,然后“确定”开始录制。选中“录制宏”工具栏上的“相对引用”按钮,然后将需要的特殊符号输入到某个单元格中,再单击“录制宏”工具栏上的“停止”按钮,完成宏的录制。仿照上面的操作,一一录制好其它特殊符号的输入“宏”。2.打开“自定义”对话框,在“工具栏”标签中,单击“新建”按钮,弹出“新建工具栏”对话框,输入名称——“专业符号”,确定后,即在工作区中出现一个工具条。切换到“命令”标签中,选中“类别”下面的“宏”,将“命令”下面的“自定义按钮”项拖到“专业符号”栏上(有多少个特殊符号就拖多少个按钮)。3.选中其中一个“自定义按钮”,仿照第2个秘技的第1点对它们进行命名。4.右击某个命名后的按钮,在随后弹出的快捷菜单中,选“指定宏”选项,打开“指定宏”对话框,选中相应的宏(如fuhao1等),确定退出。重复此步操作,将按钮与相应的宏链接起来。5.关闭“自定义”对话框,以后可以像使用普通工具栏一样,使用“专业符号”工具栏,向单元格中快速输入专业符号了。五、用“视面管理器”保存多个打印页面有的工作表,经常需要打印其中不同的区域,用“视面管理器”吧。1.打开需要打印的工作表,用鼠标在不需要打印的行(或列)标上拖拉,选中它们再右击鼠标,在随后出现的快捷菜单中,选“隐藏”选项,将不需要打印的行(或列)隐藏起来。2.执行“视图→视面管理器”命令,打开“视面管理器”对话框,单击“添加”按钮,弹出“添加视面”对话框,输入一个名称(如“上报表”)后,单击“确定”按钮。3.将隐藏的行(或列)显示出来,并重复上述操作,“添加”好其它的打印视面。4.以后需要打印某种表格时,打开“视面管理器”,选中需要打印的表格名称,单击“显示”按钮,工作表即刻按事先设定好的界面显示出来,简单设置、排版一下,按下工具栏上的“打印”按钮,一切就OK了。六、让数据按需排序如果你要将员工按其所在的部门进行排序,这些部门名称既的有关信息不是按拼音顺序,也不是按笔画顺序,怎么办?可采用自定义序列来排序。1.执行“格式→选项”命令,打开“选项”对话框,进入“自定义序列”标签中,在“输入序列”下面的方框中输入部门排序的序列(如“机关,车队,一车间,二车间,三车间”等),单击“添加”和“确定”按钮退出。2.选中“部门”列中任意一个单元格,执行“数据→排序”命令,打开“排序”对话框,单击“选项”按钮,弹出“排序选项”对话框,按其中的下拉按钮,选中刚才自定义的序列,按两次“确定”按钮返回,所有数据就按要求进行了排序。七、把数据彻底隐藏起来工作表部分单元格中的内容不想让浏览者查阅,只好将它隐藏起来了。1.选中需要隐藏内容的单元格(区域),执行“格式→单元格”命令,打开“单元格格式”对话框,在“数字”标签的“分类”下面选中“自定义”选项,然后在右边“类型”下面的方框中输入“;;;”(三个英文状态下的分号)。2.再切换到“保护”标签下,选中其中的“隐藏”选项,按“确定”按钮退出。3.执行“工具→保护→保护工作表”命令,打开“保护工作表”对话框,设置好密码后,“确定”返回。经过这样的设置以后,上述单元格中的内容不再显示出来,就是使用Excel的透明功能也不能让其现形。提示:在“保护”标签下,请不要清除“锁定”前面复选框中的“∨”号,这样可以防止别人删除你隐藏起来的数据。八、让中、英文输入法智能化地出现在编辑表格时,有的单元格中要输入英文,有的单元格中要输入中文,反复切换输入法实在不方便,何不设置一下,让输入法智能化地调整呢?选中需要输入中文的单元格区域,执行“数据→有效性”命令,打开“数据有效性”对话框,切换到“输入法模式”标签下,按“模式”右侧的下拉按钮,选中“打开”选项后,“确定”退出。以后当选中需要输入中文的单元格区域中任意一个单元格时,中文输入法(输入法列表中的第1个中文输入法)自动打开,当选中其它单元格时,中文输入法自动关闭。九、让“自动更正”输入统一的文本你是不是经常为输入某些固定的文本,如《电脑报》而烦恼呢?那就往下看吧。1.执行“工具→自动更正”命令,打开“自动更正”对话框。2.在“替换”下面的方框中输入“pcw”(也可以是其他字符,“pcw”用小写),在“替换为”下面的方框中输入“《电脑报》”,再单击“添加”和“确定”按钮。3.以后如果需要输入上述文本时,只要输入“pcw”字符?此时可以不考虑“pcw”的大小写?,然后确认一下就成了。十、在Excel中自定义函数Excel函数虽然丰富,但并不能满足我们的所有需要。我们可以自定义一个函数,来完成一些特定的运算。下面,我们就来自定义一个计算梯形面积的函数:1.执行“工具→宏→VisualBasic编辑器”菜单命令(或按“Alt+F11”快捷键),打开VisualBasic编辑窗口。2.在窗口中,执行“插入→模块”菜单命令,插入一个新的模块——模块1。3.在右边的“代码窗口”中输入以下代码:FunctionV(a,b,h)V=h*(a+b)/2EndFunction4.关闭窗口,自定义函数完成。以后可以像使用内置函数一样使用自定义函数。提示:用上面方法自定义的函数通常只能在相应的工作簿中使用。十一、表头下面衬张图片为工作表添加的背景,是衬在整个工作表下面的,能不能只衬在表头下面呢?1.执行“格式→工作表→背景”命令,打开“工作表背景”对话框,选中需要作为背景的图片后,按下“插入”按钮,将图片衬于整个工作表下面。2.在按住Ctrl键的同时,用鼠标在不需要衬图片的单元格(区域)中拖拉,同时选中这些单元格(区域)。3.按“格式”工具栏上的“填充颜色”右侧的下拉按钮,在随后出现的“调色板”中,选中“白色”。经过这样的设置以后,留下的单元格下面衬上了图片,而上述选中的单元格(区域)下面就没有衬图片了(其实,是图片被“白色”遮盖了)。提示?衬在单元格下面的图片是不支持打印的。十二、用连字符“&”来合并文本如果我们想将多列的内容合并到一列中,不需要利用函数,一个小小的连字符“&”就能将它搞定(此处假定将B、C、D列合并到一列中)。1.在D列后面插入两个空列(E、F列),然后在D1单元格中输入公式:=B1&C1&D1。2.再次选中D1单元格,用“填充柄”将上述公式复制到D列下面的单元格中,B、C、D列的内容即被合并到E列对应的单元格中。3.选中E列,执行“复制”操作,然后选中F列,执行“编辑→选择性粘贴”命令,打开“选择性粘贴”对话框,选中其中的“数值”选项,按下“确定”按钮,E列的内容(不是公式)即被复制到F列中。4.将B、C、D、E列删除,完成合并工作。提示:完成第1、2步的操作,合并效果已经实现,但此时如果删除B、C、D列,公式会出现错误。故须进行第3步操作,将公式转换为不变的“值”。生成绩条常有朋友问“如何打印成绩条”这样的问题,有不少人采取录制宏或VBA的方法来实现,这对于初学者来说有一定难度。出于此种考虑,我在这里给出一种用函数实现的简便方法。此处假定学生成绩保存在Sheet1工作表的A1至G64单元格区域中,其中第1行为标题,第2行为学科名称。1.切换到Sheet2工作表中,选中A1单元格,输入公式:=IF(MOD(ROW(),3)=0,″″,IF(0MOD?ROW(),3(=1,sheet1!Aū,INDEX(sheet1!$A:$G,INT(((ROW()+4)/3)+1),COLUMN())))。2.再次选中A1单元格,用“填充柄”将上述公式复制到B1至G1单元格中;然后,再同时选中A1至G1单元格区域,用“填充柄”将上述公式复制到A2至G185单元格中。至此,成绩条基本成型,下面简单修饰一下。3.调整好行高和列宽后,同时选中A1至G2单元格区域(第1位学生的成绩条区域),按“格式”工具栏“边框”右侧的下拉按钮,在随后出现的边框列表中,选中“所有框线”选项,为选中的区域添加边框(如果不需要边框,可以不进行此步及下面的操作)。4.同时选中A1至G3单元格区域,点击“常用”工具栏上的“格式刷”按钮,然后按住鼠标左键,自A4拖拉至G186单元格区域,为所有的成绩条添加边框。按“打印”按钮,即可将成绩条打印出来。十四、Excel帮你选函数在用函数处理数据时,常常不知道使用什么函数比较合适。Excel的“搜索函数”功能可以帮你缩小范围,挑选出合适的函数。执行“插入→函数”命令,打开“插入函数”对话框,在“搜索函数”下面的方框中输入要求(如“计数”),然后单击“转到”按钮,系统即刻将与“计数”有关的函数挑选出来,并显示在“选择函数”下面的列表框中。再结合查看相关的帮助文件,即可快速确定所需要的函数。十五、同时查看不同工作表中多个单元格内的数据有时,我们编辑某个工作表(Sheet1)时,需要查看其它工作表中(Sheet2、Sheet3……)某个单元格的内容,可以利用Excel的“监视窗口”功能来实现。执行“视图→工具栏→监视窗口”命令,打开“监视窗口”,单击其中的“添加监视”按钮,展开“添加监视点”对话框,用鼠标选中需要查看的单元格后,再单击“添加”按钮。重复前述操作,添加其它“监视点”。以后,无论在哪个工作表中,只要打开“监视窗口”,即可查看所有被监视点单元格内的数据和相关信息。十六、为单元格快速画边框在Excel2002以前的版本中,为单元格区域添加边框的操作比较麻烦,Excel2002对此功能进行了全新的拓展。单击“格式”工具栏上“边框”右侧的下拉按钮,在随后弹出的下拉列表中,选“绘图边框”选项,或者执行“视图→工具栏→边框”命令,展开“边框”工具栏。单击工具栏最左侧的下拉按钮,选中一种边框样式,然后在需要添加边框的单元格区域中拖拉,即可为相应的单元格区域快速画上边框。提示:①如果画错了边框,没关系,选中工具栏上的“擦除边框”按钮,然后在错误的边框上拖拉一下,就可以清除掉错误的边框。②如果需要画出不同颜色的边框,可以先按工具栏右侧的“线条颜色”按钮,在随后弹出的调色板中选中需要的颜色后,再画边框即可。③这一功能还可以在单元格中画上对角的斜线。十七、控制特定单元格输入文本的长度你能想象当你在该输入四位数的单元格中却填入了一个两位数,或者在该输入文字的单元格中你却输入了数字的时候,Excel就能自动判断、即时分析并弹出警告,那该多好啊!要实现这一功能,对Excel来说,也并不难。例如我们将光标定位到一个登记“年份”的单元格中,为了输入的统一和计算的方便,我们希望“年份”都用一个四位数来表示。所以,我们可以单击“数据”菜单的“有效性”选项。在“设置”卡片“有效性条件”的“允许”下拉菜单中选择“文本长度”。然后在“数据”下拉菜单中选择“等于”,且“长度”为“4”。同时,我们再来到“出错警告”卡片中,将“输入无效数据时显示的出错警告”设为“停止”,并在“标题”和“错误信息”栏中分别填入“输入文本非法!”和“请输入四位数年份。”字样。很显然,当如果有人在该单元格中输入的不是一个四位数时,Excel就会弹出示的警告对话框,告诉你出错原因,并直到你输入了正确“样式”的数值后方可继续录入。神奇吧?其实,在Excel的“数据有效性”判断中,还有许多特殊类型的数据格式可选,比如“文本类型”啊,“序列大小”啊,“时间远近”啊,如你有兴趣,何不自作主张,自己设计一种检测标准,让你的Excel展示出与众不同的光彩呢。十八、成组填充多张表格的固定单元格我们知道每次打开Excel,软件总是默认打开多张工作表。由此就可看出Excel除了拥有强大的单张表格的处理能力,更适合在多张相互关联的表格中协调工作。要协调关联,当然首先就需要同步输入。因此,在很多情况下,都会需要同时在多张表格的相同单元格中输入同样的内容。那么如何对表格进行成组编辑呢?首先我们单击第一个工作表的标签名“Sheet1”,然后按住Shift键,单击最后一张表格的标签名“Sheet3”(如果我们想关联的表格不在一起,可以按住Ctrl键进行点选)。此时,我们看到Excel的标题栏上的名称出现了“工作组”字样,我们就可以进行对工作组的编辑工作了。在需要一次输入多张表格内容的单元格中随便写点什么,我们发现,“工作组”中所有表格的同一位置都显示出相应内容了。但是,仅仅同步输入是远远不够的。比如,我们需要将多张表格中相同位置的数据统一改变格式该怎么办呢?首先,我们得改变第一张表格的数据格式,再单击“编辑”菜单的“填充”选项,然后在其子菜单中选择“至同组工作表”。这时,Excel会弹出“填充成组工作表”的对话框,在这里我们选择“格式”一项,点“确定”后,同组中所有表格该位置的数据格式都改变了。十九、改变文本的大小写在Excel中,为表格处理和数据运算提供最强大支持的不是公式,也不是数据库,而是函数。不要以为Excel中的函数只是针对数字,其实只要是写进表格中的内容,Excel都有对它编辑的特殊函数。例如改变文本的大小写。在Excel2002中,至少提供了三种有关文本大小写转换的函数。它们分别是:“=UPPER(源数据格)”,将文本全部转换为大写;“=LOWER(源数据格)”,将文本全部转换成小写;“=PROPER(源数据格)”,将文本转换成“适当”的大小写,如让每个单词的首字母为大写等。例如,我们在一张表格的A1单元格中输入小写的“excel”,然后在目标单元格中输入“=UPPER(A1)”,回车后得到的结果将会是“EXCEL”。同样,如果我们在A3单元格中输入“mr.weiwei”,然后我们在目标单元格中输入“=PROPER(A3)”,那么我们得到的结果就将是“Mr.Weiwei”了。二十、提取字符串中的特定字符除了直接输入外,从已存在的单元格内容中提取特定字符输入,绝对是一种省时又省事的方法,特别是对一些样式雷同的信息更是如此,比如员工名单、籍贯等信息。如果我们想快速从A4单元格中提取称谓的话,最好使用“=RIGHT(源数据格,提取的字符数)”函数,它表示“从A4单元格最右侧的字符开始提取2个字符”输入到此位置。当然,如果你想提取姓名的话,则要使用“=LEFT(源数据格,提取的字符数)”函数了。还有一种情况,我们不从左右两端开始,而是直接从数据中间提取几个字符。比如我们要想从A5单元格中提取“武汉”两个字时,就只须在目标单元格中输入“=MID(A5,4,2)”就可以了。意思是:在A5单元格中提取第4个字符后的两个字符,也就是第4和第5两个字。二十一、把基数词转换成序数词将英文的基数词转换成序数词是一个比较复杂的问题。因为它没有一个十分固定的模式:大多数的数字在变成序数词都是使用的“th”后缀,但大凡是以“1”、“2”、“3”结尾的数字却分别是以“st”、“nd”和“rd”结尾的。而且,“11”、“12”、“13”这3个数字又不一样,它们却仍然是以“th”结尾的。因此,实现起来似乎很复杂。其实,只要我们理清思路,找准函数,只须编写一个公式,就可轻松转换了。不信,请看:“=A2&IF(OR(VALUE(RIGHT(A2,2))={11,12,13}),″th″,IF(OR(VALUE(RIGHT(A2))={1,2,3,},CHOOSE(RIGHT(A2),″st″,″nd″,″rd″),″th″))”。该公式尽管一长串,不过含义却很明确:①如果数字是以“11”、“12”、“13”结尾的,则加上“th”后缀;②如果第1原则无效,则检查最后一个数字,以“1”结尾使用“st”、以“2”结尾使用“nd”、以“3”结尾使用“rd”;③如果第1、2原则都无效,那么就用“th”。因此,基数词和序数词的转换实现得如此轻松和快捷。二十二、用特殊符号补齐位数和财务打过交道的人都知道,在账面填充时有一种约定俗成的“安全填写法”,那就是将金额中的空位补齐,或者在款项数据的前面加上“$”之类的符号。其实,在Excel中也有类似的输入方法,那就是“REPT”函数。它的基本格式是“=REPT(“特殊符号”,填充位数)”。比如,我们要在中A2单元格里的数字结尾处用“#”号填充至16位,就只须将公式改为“=(A2&REPT(″#″,16-LEN(A2)))”即可;如果我们要将A3单元格中的数字从左侧用“#”号填充至16位,就要改为“=REPT(″#″,16-LEN(A3)))&A3”;另外,如果我们想用“#”号将A4中的数值从两侧填充,则需要改为“=REPT(″#″,8-LEN(A4)/2)&A4&REPT(″#″)8-LEN(A4)/2)”;如果你还嫌不够专业,要在A5单元格数字的顶头加上“$”符号的话,那就改为:“=(TEXT(A5,″$#,##0.00″(&REPT(″#″,16-LEN(TEXT(A5,″$#,##0.00″))))”,一定能满足你的要求。二十三、创建文本直方图除了重复输入之外,“REPT”函数另一项衍生应用就是可以直接在工作表中创建由纯文本组成的直方图。它的原理也很简单,就是利用特殊符号的智能重复,按照指定单元格中的计算结果表现出长短不一的比较效果。比如我们首先制作一张年度收支平衡表,然后将“E列”作为直方图中“预算内”月份的显示区,将“G列”则作为直方图中“超预算”的显示区。然后根据表中已有结果“D列”的数值,用“Wingdings”字体的“N”字符表现出来。具体步骤如下:在E3单元格中写入公式“=IF(D30,REPT(″n″,ROUND(D3*100,0)),″″)”,也拖动填充柄至G14。我们看到,一个没有动用Excel图表功能的纯文本直方图已展现眼前,方便直观,简单明了。二十四、计算单元格中的总字数有时候,我们可能对某个单元格中字符的数量感兴趣,需要计算单元格中的总字数。要解决这个问题,除了利用到“SUBSTITUTE”函数的虚拟计算外,还要动用“TRIM”函数来删除空格。比如现在A1单元格中输入有“howmanywords?”字样,那么我们就可以用如下的表达式来帮忙:“=IF(LEN(A1)=0,0,LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1),″,″,″″))+1)”该式的含义是先用“SUBSTITUTE”函数创建一个新字符串,并且利用“TRIM”函数删除其中字符间的空格,然后计算此字符串和原字符串的数位差,从而得出“空格”的数量,最后将空格数+1,就得出单元格中字符的数量了。二十五、关于欧元的转换这是Excel2002中的新工具。如果你在安装Excel2002时选择的是默认方式,那么很可能不能在“工具”菜单中找到它。不过,我们可以先选择“工具”菜单中的“加载宏”,然后在弹出窗口中勾选“欧元工具”选项,“确定”后Excel2002就会自行安装了。完成后我们再次打开“工具”菜单,单击“欧元转换”,一个独立的专门用于欧元和欧盟成员国货币转换的窗口就出现了。与Excel的其他函数窗口一样,我们可以通过鼠标设置货币转换的“源区域”和“目标区域”,然后再选择转换前后的不同币种即可。所示的就是“100欧元”分别转换成欧盟成员国其他货币的比价一览表。当然,为了使欧元的显示更显专业,我们还可以点击Excel工具栏上的“欧元”按钮,这样所有转换后的货币数值都是欧元的样式了经在Excel中完成过上百张财务报表,也许你已利用Excel函数实现过上千次的复杂运算,也许你认为Excel也不过如此,甚至了无新意。但我们平日里无数次重复的得心应手的使用方法只不过是Excel全部技巧的百分之一。本专题从Excel中的一些鲜为人知的技巧入手,领略一下关于Excel的别样风情。一、让不同类型数据用不同颜色显示在工资表中,如果想让大于等于2000元的工资总额以“红色”显示,大于等于1500元的工资总额以“蓝色”显示,低于1000元的工资总额以“棕色”显示,其它以“黑色”显示,我们可以这样设置。1.打开“工资表”工作簿,选中“工资总额”所在列,执行“格式→条件格式”命令,打开“条件格式”对话框。单击第二个方框右侧的下拉按钮,选中“大于或等于”选项,在后面的方框中输入数值“2000”。单击“格式”按钮,打开“单元格格式”对话框,将“字体”的“颜色”设置为“红色”。2.按“添加”按钮,并仿照上面的操作设置好其它条件(大于等于1500,字体设置为“蓝色”;小于1000,字体设置为“棕色”)。3.设置完成后,按下“确定”按钮。看看工资表吧,工资总额的数据是不是按你的要求以不同颜色显示出来了。二、建立分类下拉列表填充项我们常常要将企业的名称输入到表格中,为了保持名称的一致性,利用“数据有效性”功能建了一个分类下拉列表填充项。1.在Sheet2中,将企业名称按类别(如“工业企业”、“商业企业”、“个体企业”等)分别输入不同列中,建立一个企业名称数据库。2.选中A列(“工业企业”名称所在列),在“名称”栏内,输入“工业企业”字符后,按“回车”键进行确认。仿照上面的操作,将B、C……列分别命名为“商业企业”、“个体企业”……3.切换到Sheet1中,选中需要输入“企业类别”的列(如C列),执行“数据→有效性”命令,打开“数据有效性”对话框。在“设置”标签中,单击“允许”右侧的下拉按钮,选中“序列”选项,在下面的“来源”方框中,输入“工业企业”,“商业企业”,“个体企业”……序列(各元素之间用英文逗号隔开),确定退出。再选中需要输入企业名称的列(如D列),再打开“数据有效性”对话框,选中“序列”选项后,在“来源”方框中输入公式:=INDIRECT(C1),确定退出。4.选中C列任意单元格(如C4),单击右侧下拉按钮,选择相应的“企业类别”填入单元格中。然后选中该单元格对应的D列单元格(如D4),单击下拉按钮,即可从相应类别的企业名称列表中选择需要的企业名称填入该单元格中。提示:在以后打印报表时,如果不需要打印“企业类别”列,可以选中该列,右击鼠标,选“隐藏”选项,将该列隐藏起来即可。三、建立“常用文档”新菜单在菜单栏上新建一个“常用文档”菜单,将常用的工作簿文档添加到其中,方便随时调用。1.在工具栏空白处右击鼠标,选“自定义”选项,打开“自定义”对话框。在“命令”标签中,选中“类别”下的“新菜单”项,再将“命令”下面的“新菜单”拖到菜单栏。按“更改所选内容”按钮,在弹出菜单的“命名”框中输入一个名称(如“常用文档”)。2.再在“类别”下面任选一项(如“插入”选项),在右边“命令”下面任选一项(如“超链接”选项),将它拖到新菜单(常用文档)中,并仿照上面的操作对它进行命名(如“工资表”等),建立第一个工作簿文档列表名称。重复上面的操作,多添加几个文档列表名称。3.选中“常用文档”菜单中某个菜单项(如“工资表”等),右击鼠标,在弹出的快捷菜单中,选“分配超链接→打开”选项,打开“分配超链接”对话框。通过按“查找范围”右侧的下拉按钮,定位到相应的工作簿(如“工资.xls”等)文件夹,并选中该工作簿文档。重复上面的操作,将菜单项和与它对应的工作簿文档超链接起来。4.以后需要打开“常用文档”菜单中的某个工作簿文档时,只要展开“常用文档”菜单,单击其中的相应选项即可。提示:尽管我们将“超链接”选项拖到了“常用文档”菜单中,但并不影响“插入”菜单中“超链接”菜单项和“常用”工具栏上的“插入超链接”按钮的功能。四、制作“专业符号”工具栏在编辑专业表格时,常常需要输入一些特殊的专业符号,为了方便输入,我们可以制作一个属于自己的“专业符号”工具栏。1.执行“工具→宏→录制新宏”命令,打开“录制新宏”对话框,输入宏名?如“fuhao1”?并将宏保存在“个人宏工作簿”中,然后“确定”开始录制。选中“录制宏”工具栏上的“相对引用”按钮,然后将需要的特殊符号输入到某个单元格中,再单击“录制宏”工具栏上的“停止”按钮,完成宏的录制。仿照上面的操作,一一录制好其它特殊符号的输入“宏”。2.打开“自定义”对话框,在“工具栏”标签中,单击“新建”按钮,弹出“新建工具栏”对话框,输入名称——“专业符号”,确定后,即在工作区中出现一个工具条。切换到“命令”标签中,选中“类别”下面的“宏”,将“命令”下面的“自定义按钮”项拖到“专业符号”栏上(有多少个特殊符号就拖多少个按钮)。3.选中其中一个“自定义按钮”,仿照第2个秘技的第1点对它们进行命名。4.右击某个命名后的按钮,在随后弹出的快捷菜单中,选“指定宏”选项,打开“指定宏”对话框,选中相应的宏(如fuhao1等),确定退出。重复此步操作,将按钮与相应的宏链接起来。5.关闭“自定义”对话框,以后可以像使用普通工具栏一样,使用“专业符号”工具栏,向单元格中快速输入专业符号了。五、用“视面管理器”保存多个打印页面有的工作表,经常需要打印其中不同的区域,用“视面管理器”吧。1.打开需要打印的工作表,用鼠标在不需要打印

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论