Excel图表网络学习资源

知名Excel图表专家Jon Peltier的个人博客,有大量和图表相关的案例及制作教程

https://peltiertech.com/

MVP Andy的个人博客,有大量和图表相关的案例及工具

http://www.andypope.info/charts.htm

著名Excel作家John Walkenbach的公司网站,有大量图表相关资源

http://spreadsheetpage.com/

Jorge Camoes维护的Excel图表网站

http://www.excelcharts.com/blog/

MVP Daniel Ferry的个人博客,有大量和图表相关的案例

http://www.excelhero.com/

痴狂Excel爱好者Ajay的个人博客,有大量和图表相关的案例

http://www.databison.com/

著名数据可视化作者Stephen Few维护的网站,有大量图表及仪表板制作建议

http://www.perceptualedge.com/blog/

图表大师Edward Tufte的个人博客网站

http://www.edwardtufte.com/tufte/fineart

知名仪表板制作公司网站,有一些不错的仪表板教程

http://www.juiceanalytics.com/writing/

Excel协调共生:基于网页的交互式图表

SAP公司的水晶易表Xcelsius软件也是基于Flash格式的图表制作工具,其具有非常灵活的交互功能,和Excel无缝结合。同时其有很强大的仪表板整合功能,但在处理大数据及图表样式的自定义方面受其模版影响,并不出彩。Swiff Chart也包括一个基于网页的开发版本,该版本数据和图表分离,可以利用网页编程实现交互。这类基于编程的Flash图表,在互联网中有种类繁多的应用,这和Excel已经没有太多的关联,有兴趣的读者请使用搜索引擎去检索。

基于Microsoft skydrive云存储的Excel Web App在交互方面几乎没有实用价值,目前不支持任何交互控件,包括数据有效性的使用。但笔者发现,这个应用的函数功能异常强大,配合函数和数据表格的筛选可以实现图表简单交互。

知识扩展


笔者在本书的主页提供了图16.2-2案例文档的Web交互版本,详见以下网址:

http://www.visualvivid.com/web-based-excel-dynamic-chart.html


Microsoft Windows SharePoint的PerformancePoint仪表板部件可以在企业的SharePoint站点提供丰富的交互式图表,该应用的初衷即是针对BI仪表板而设计,相比Excel不但强大,而且专业。Microsoft提供了一个独立的仪表板设计器来配合该部件的使用,如图16.3-4所示:

基于PerformancePoint仪表板设计器

图16.3-4 基于PerformancePoint仪表板设计器

借助微软的PowerPivot Excel插件,通过获取外部数据库数据,使用数据透视表或图来展示和分析数据,并发布到SharePoint站点,来实现BI仪表板的Web应用。图16.3-5是一个基于SharePoint的仪表板案例。

基于SharePoint站点的BI仪表板

图16.3-5 基于SharePoint站点的BI仪表板

知识扩展


PowerPivot Excel插件的下载地址为:

http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyId=e081c894-e4ab-42df-8c87-4b99c1f3c49b&displaylang=zh-cn


示例文档


本书所附16.3的两个文件夹中包含了本节所涉及的案例。

1)16.3-1文件夹是基于微软skydrive云存储的Excel Web App应用,.xlsx文档为skydrive上存储的原始文档,.html为嵌入Excel Web App应用的网页文档。

2)16.3-2文件夹是基于Swiff Chart软件的应用,其中:.csv为Swiff Chart原始数据档;.sfc为Swiff Chart的原始文档;.swf为Flash图表导出;.html为Flash嵌入文档;.xls为嵌入Flash的Excel文档;.ppt为嵌入Flash的PowerPoint文档。

Excel协调共生:基于Web的应用

将Excel图表发布到网页中,借助Microsoft提供的Web应用工具,可实现将相对简单的Excel图表发布到网页中;如果借助第三方的Flash工具,则可在多个平台和浏览器中使用;对于交互类的图表及仪表板其实最好的解决方案则是使用Microsoft Windows SharePoint。

在网页上使用Excel图表

在Excel 2003及其过往版本中,Excel使用OWC(Office Web Components)将Excel发布到网页。其包含四个主要的部件:电子表格、图表、透视表和数据源。Excel 2003中使用非常简单,在图16.2-1的另存对话框中,选择“添加交互”,点击[发布]即可。但这个组件的功能非常有限,且发布的图表可能会走样。查看必须使用IE浏览器,同时需安装Microsoft Office2003或过往版本。

基于微软skydrive云存储的Excel Web App

图16.3-1 基于微软skydrive云存储的Excel Web App

该组件在Excel 2007/2010中已经不被支持,但我们可以选择基于微软skydrive云存储的Excel Web App,前提是必须拥有一个MSN账号,该账号可以非常方便地通过注册获得。使用MSN账号登录https://skydrive.live.com/,并上传Excel工作簿到权限为“所有人(公开)”的文件夹中,双击打开,单击菜单的“共享>嵌入”命令,如图16.3-1所示,在弹出对话框中复制嵌入代码,粘贴到个人博客或网页的相关位置即可,实际效果如图16.3-2所示:

利用Excel Web App嵌入Excel工作簿的网页

图16.3-2 利用Excel Web App嵌入Excel工作簿的网页

Microsoft也提供了基于Web应用的Excel Services,这个应用构建在ASP.NET和Microsoft Windows SharePoint技术之上,主要针对企业级应用。须借助服务器端的应用来实现,使用Excel Services对个人几乎没有可操作性。

使用第三方工具

也可以借助第三方工具来实现将图表发布到网页中,但这已经不是Excel图表的应用。这类工具中,尤以Swiff Chart软件为代表,这是一款短小精悍的商业小软件,除没有三维立体类图表外,操作和Excel图表几乎并无二致,尤其设置界面几乎和Excel 2003如出一辙,且可直接导入Excel数据表,同时具有Excel所不具有的线形阶梯样式,如图16.3-3所示:

基于Flash技术的Swiff Chart图表编辑软件

图16.3-3 基于Flash技术的Swiff Chart图表编辑软件

该软件可将制作好的图表导出为Flash的swf格式,该格式可以非常方便地嵌入到网页,以及Excel和PowerPoint软件中。如果嵌入到PowerPoint幻灯演示中的图表由该软件生成,切记不要使用Flash炫丽的动画效果,这会得不偿失。Swiff提供了Swiff Point插件工具,该工具可以非常方便地实现在PowerPoint软件中插入swf文件。

Excel协调共生:图片导出

虽然在其他Microsoft Office系列软件中,可以将Excel中复制的图表,使用选择性粘贴,转换为图片形式来使用。但在非Microsoft Office系列软件中,可能需要使用图片格式的图表,问题是Excel并不支持将图表直接导出为图片格式,这就需要我们使用一些变通的方法来实现图片导出。

以网页保存形式导出

Excel支持将文档保存为普通网页(htm、html)和单文件(mht、mhtml)格式,如图16.2-1所示,其中当保存为普通网页格式时,我们可在保存目录的同文档名文件夹中获得图表图片。在Excel 2003及其以前版本中,可获得的图片是gif格式;在Excel 2007/2010中,可获得的图片是png格式。

Excel 2003另存为网页对话框

图16.2-1 Excel 2003另存为网页对话框

借助其他软件导出

1.借助PowerPoint导出

PowerPoint软件支持将图片另存为多种图片格式,借助PowerPoint软件可实现将图表转换为本地图片。在Excel中选中图表复制,在PowerPoint软件中选择性粘贴为图片(增强性图元文件),然后单击鼠标右键>另存为图片。在另存对话框中,可选的类型有jpg、gif、bmp等种类繁多的格式,如果使用PowerPoint 2010,则保存格式更是多样。

2.借助Microsoft Office Picture Manager导出

Microsoft Office Picture Manager软件是在Office正常安装下,即被默认安装的图片管理软件,可完成图片的简单管理和编辑。该软件可直接提取剪切板的图片,将其保存为本地图片。在Excel中,按住键盘Ctrl键,选中图表复制,并选择性粘贴为图片(增强性图元文件),将这个粘贴图片剪切,然后在Microsoft Office Picture Manager中粘贴即可获得png格式图表。

3.借助其他软件导出

可借助pdf打印机或另存为pdf格式的文档,当然根据版本的不同,可能需要安装相应的软件,然后将pdf文件另存为图片格式来实现。Microsoft Office 2003中包含了一个Microsoft Office Document Imaging软件,可将Excel文档保存为tif或tiff的图片格式。除此之外,也可使用屏幕截图软件来获得图片,这类软件有很多,感兴趣的读者请搜索互联网。

借助VBA导出

其实不论Excel版本,均支持将图表或矢量图形导出为位图格式的图片形式,但遗憾的是Excel并未提供相应的菜单按钮,这就需要我们使用VBA来处理这样的需求。使用VBA来导出位图格式的图片相当简单,只需使用图表的Export方法即可。但该方法并不支持emf格式的矢量图片,所以在图16.2-2案例中,emf格式的图片借助PowerPoint来完成导出,如果没有安装PowerPoint软件,则该方法无效。

Excel 2003另存为网页对话框[资料来源:纽约时报网站]

图16.2-2 Excel 2003另存为网页对话框[资料来源:纽约时报网站]


以下是图片导出的VBA代码,和图16.2-2案例中的“图表输出”按钮关联,输出图表必须要在选中前提下。如果读者对此感兴趣,可以在此基础上进行修改和扩充。


程序代码:16.2-1 模块1的公有变量申明

Excel协调共生:嵌入式应用

除Excel外,在Microsoft Office系列软件中,均可插入Excel图表对象,这其实是采用了将Excel工作簿嵌入到其他软件中显示的OLE技术,可调用Excel直接编辑,这为我们将Excel图表跨软件显示和编辑带来了极大的方便。

插入Excel图表对象

无论Microsoft Office系列软件的版本及软件,在“插入>对象”中,我们可以在“新建”选项卡中选择“Microsoft Excel图表”对象,确定后即可调用Excel来创建一个Excel图表(Excel除外)。亦可在“由文件创建”选项卡中选择一个已经包含Excel图表的工作簿,嵌入到相应的程序文档中。如图16.1-1所示(:不同版本,对话框界面会有少许差异,但操作及内容完全相同)。

图16.1-1 Microsoft Office软件的对象插入对话框

如果要将Excel图表通过该方式嵌入到其他软件,建议将图表置于Excel的图表工作表中,这样可以非常方便地控制图表的显示窗口。当对象插入后,我们即可使用“单击鼠标右键>图表对象>[编辑]”来进行图表的直接编辑,只要熟悉Excel图表制作,在其他Microsoft Office系列软件中操作和在Excel中没有两样,图16.1-2的案例演示了在PowerPoint 2010中嵌入Excel图表。如果使用图表对象的[打开]按钮,则可在Excel中打开进行编辑,该方法可以将嵌入的工作簿另存到磁盘,图表对象的[转换]按钮对于Excel图表则无实质意义。

PowerPoint 2010中嵌入Excel图表的演示

图16.1-2 PowerPoint 2010中嵌入Excel图表的演示

一般直接复制Excel图表并粘贴到同版本的PowerPoint软件中时,Office也采用对象嵌入方式进行粘贴,且此时,展示图表复制到了嵌入工作簿对象的图表工作表中。同样的操作,在其他Microsoft Office系列软件中,视版本会有不同的处理机制,在Microsoft Office 2007和2010系列软件中,Excel图表已经变为一个公共组件,可以被其他大多数的Microsoft Office程序所支持。

VBA操作Excel图表对象

一般不建议将动态交互式Excel图表嵌入到其他软件中,因为Excel的所有交互将不再起作用,这种嵌入技术仅是一个Excel图表的展示窗口而已。要实现交互就必须使用VBA来操作这些OLE对象,这种操作通过后台对Excel的调用来完成。此方法的交互触发控件需要放在嵌入图表的宿主文档中,而不应该放在嵌入的Excel工作簿中。

这类应用仅在幻灯演示中有一定使用价值,图16.1-3的案例是一个在PowerPoint中嵌入Excel图表,配合窗体控件实现的交互式幻灯演示图表。实现过程主要借助VBA完成,涉及幻灯片的事件操作和OLE对象编辑。其中VBA处理幻灯片事件借助了类模块来实现,目的是关闭Excel软件,并释放Excel对象的后台调用,在幻灯演示结束和关闭演示文稿时触发事件。以下是制作步骤:

PowerPoint中嵌入Excel图表制作的交互式幻灯演示

图16.1-3 PowerPoint中嵌入Excel图表制作的交互式幻灯演示

1.在幻灯片中插入已经制作完成的Excel交互式图表工作簿对象,调整好显示界面窗口的大小。

2.在幻灯片中插入以下窗体控件:1个下拉列表框、两组选项按钮。每组选项按钮各两个,并使用置于底层的矩形自选图形区隔。在选项按钮属性对话框中,分别修改Caption属性为“2009”、“2010”、“昆山”、“东莞”。

3.按下键盘Alt+F11组合键打开VBE编辑器,插入一个模块,并键入以下代码:


程序代码:16.1-1 模块1的公有变量申明


4.选中下拉列表框控件,单击鼠标右键>查看代码,激活VBE编辑器,在Slide1中键入以下代码:


程序代码:16.1-2 Slide1的InitializeSlidel初始化过程


:此处使用循环遍历OLE对象名称的方法是因为,不同的电脑所显示的默认对象名称会出现差异,如果是使用PowerPoint 2007及其以上版本,建议在“开始>选择>选择窗格”中将对象名称改为固定名称。


程序代码:16.1-3 Slide1的ComboBox1_Change下拉列表更改


程序代码:16.1-4 Slide1的ComboBox1_GotFocus下拉列表获得焦点


程序代码:16.1-5 Slide1的OptionButton1_Click选项按钮1被选中


程序代码:16.1-6 Slide1的OptionButton1_GotFocus选项按钮1获得焦点


程序代码:16.1-7 Slide1的OptionButton2_Click选项按钮2被选中


程序代码:16.1-8 Slide1的OptionButton2_GotFocus选项按钮2获得焦点


程序代码:16.1-9 Slide1的OptionButton3_Click选项按钮3被选中


程序代码:16.1-10 Slide1的OptionButton3_GotFocus选项按钮3获得焦点


程序代码:16.1-11 Slide1的OptionButton4_Click选项按钮4被选中


程序代码:16.1-12 Slide1的OptionButton4_GotFocus选项按钮4获得焦点


5.在VBE编辑器中插入一个类模块“EventClassModule”,并键入以下代码:


程序代码:16.1-13 EventClassModule的App_PresentationClose幻灯文档关闭事件


程序代码:16.1-14 幻灯片结束放映事件


程序代码:16.1-15 彻底释放Excel对象


:若不及时释放Excel对象,在演示结束,再次演示时,交互效果将无法实现。

Microsoft Graph图表对象

当安装Office系列软件时在“Office工具”中勾选了“Microsoft Graph”(正常而言,该选项默认选中),则可在Office软件的安装目录下找到程序,该对象完全是一个OLE程序,无法直接执行,必须在其宿主程序中执行。在Microsoft Office系列软件2007版本以前,单击PowerPoint菜单的按钮,所插入图表为Microsoft Graph图表对象。

在Microsoft Office系列软件2007和2010中,若没有安装Excel,将会插入Microsoft Graph图表,这和通过“插入>对象”命令插入一个“Microsoft Graph图表”没有两样,该程序的图表制作及设置和Excel 2003几乎完全一致,唯一不同的是其使用自带的数据表来存储数据。虽然这个程序相较Excel图表要简单和便于操作,但使用该程序来制作图表,相较Excel还是有一定局限,同时该程序制作的图表也无法转换为Excel图表。该程序的界面如图16.1-4所示:

在PowerPoint 2010中嵌入Microsoft Graph图表

图16.1-4 在PowerPoint 2010中嵌入Microsoft Graph图表

在默认状态下,插入Microsoft Graph图表会创建一个显示示例数据的示例图表,需要双击嵌入的图表对象,向Graph数据工作表中逐个单元格手动输入实际数据,包括行标题和列标题。也可以在Graph对象为激活状态下,在“编辑”菜单上单击“导入文件”,在“导入数据”对话框中选择文件,把Excel工作簿或者其他文件的数据导入到Microsoft Graph图表数据表中。

知识扩展


推荐在PowerPoint中使用的一个图表插件:

Think-cell是一个基于Microsoft Graph的图表插件,可生成专业的咨询图表,配色和图表操作都很优秀。该软件可在PowerPoint和Excel中使用,以下是链接地址:

http://www.think-cell.com/

在其他软件中使用Excel图表

更多时候,我们可能需要在Word、PowerPoint、网页或是其他软件中使用Excel制作的图表,所有这些应用都给Excel的图表制作带来了新的挑战。

在Microsoft Office系列软件中,可将Excel图表视为对象,插入到相应的软件中。通过使用VBA还可将插入的图表对象实现交互效果,实现多层次的数据展示。Microsoft还提供了Graph图表对象来制作图表。

当在其他软件中无法使用Excel图表对象时,一个好的方法是将图表转化成图片形式来调用。借助网页形式的保存可获得gif或png格式图片,要获得其他格式的图片则需借助Excel之外的软件,也可使用VBA来获得各种类型的图片。

除使用图片形式将Excel图表放置到Web网页外,还可借助第三方工具或是Microsoft提供的Web应用来实现,这类应用有时则需要抛开Excel来制作图表。