在 Web 页面中使用图表(chart)表现数据

chart|web|数据|图表|页面

在 Web 页面中使用图表(chart)表现数据

在 Web 编程中经常需要做的一件事情就是把从数据库中查出的数据(数字)
使用图表(chart)的形式在页面中表现出来。下面我们简单总结几种常见的做法。

1. 如果图表的样式只需要柱形图(bar)就可以的话,有一种非常简单,偷懒的
方法,即使用某些 tag 的 width 属性来表现就可以。举例如下:

<IMG HEIGHT=5 WIDTH=<%= 数值 %> SRC=http://www.163design.net/a/q/"小方块.gif">

用这种思路,要是不嫌难看的话,你干脆用 for 循环控制 * 号的显示个数也未尝
不可。;-)
如果想比较美观的话,可以把 CSS 设计的好一些,再和 DHTML 结合。

这种方法的一个完整的例子见:
http://www.microsoft.com/workshop/database/datavis/datavis.asp

2. 一些老兄喜欢直接把图片放在数据库中,那我们看看怎么把它们调出来。
(如果这些图片正好是图表的话,我就不算离题。;-))
IIS 的在线帮助中有这么个例子:
http://localhost/IIsSamples/SDK/asp/docs/CodeBrws.asp?source=/IIsSamples/SDK/asp/Database/Blob_VBScript.asp
其核心代码:
<%      
      ' 声明回传的是 Gif 文件,不是平常的 HTML
      Response.Buffer = TRUE
      Response.ContentType = "image/gif"
      ' 连数据库
      Set oConn = Server.CreateObject("ADODB.Connection")
      oConn.Open "DSN=LocalServer;UID=sa;PWD=;DATABASE=pubs"
      ' 查出存好的图片
      Set oRs = oConn.Execute("SELECT logo FROM pub_info WHERE pub_id='0736'")
      ' 取值要显得专业些 ;-)
      PicSize = oRs("logo").ActualSize
      Pic = oRs("logo").GetChunk(PicSize)
      ' 再次强调回传的是 gif 图片,view source 是什么都看不到的
      Response.BinaryWrite Pic
      Response.End
%>

好,仔细看注释的老兄(我可没这好习惯;-))会问:这支程序 mypic.asp 在浏览器中最后的效果
相当于 mypic.gif,我想要有文字怎么办?
很简单,写个 web page 中间加上 <img src=mypic.asp> 不就完了。 ;-)

3. 还有些老兄更甚,这些大侠的机器多半是 8 CPU 的 P III,他们使用 server-side 软件,
比如 excel,现做一个 chart 图片,然后以 gif 格式传给浏览器。多见于 CGI 高手。;-)
我们来看一个这样的 cool demo。
核心代码:
<%    
    Set excel = GetObject("","Excel.Application")
    If Err.Number <> 0 Then
    Response.Write("Could not create Excel document. " + Err.Description+"")
    Err.Clear
    End If
    excel.DisplayAlerts = False
    Set workbooks = excel.Workbooks
    Set wb = workbooks.Add
    Set sheets = wb.Sheets
    Set wsTotal = sheets.Add( ,,,-4167)
    wsTotal.Name = "Total_Expenses"
    Set range = wsTotal.Range("B1")
    range.FormulaR1C1 = "1"
    Set range = wsTotal.Range("C1")
    range.FormulaR1C1 = "2"
    Set range = wsTotal.Range("D1")
    range.FormulaR1C1 = "3"

    wsTotal.Activate
    wsTotal.Select

    Set range = wsTotal.Range("B1:D1")
    excel.Charts.Add
    excel.ActiveChart.ChartType = 51
    excel.ActiveChart.SetSourceData range,2

    excel.ActiveChart.Export "d:\test\exceltest"+".gif","GIF"

    Response.Write "<img src=http://www.163design.net/a/q/d:/test/exceltest.gif>"
%>

真正的懒人在写这段代码时还利用 excel 的 vba(:-P),绝对代码快枪手,
可是运行效率----呸!;-)

4. 好了,该看一看专业运动员的做法了----使用 chart control。
哪种控件更好大家见仁见智,(比如有些老兄喜欢 Java Applets ;-) 还有些老兄
喜欢自己用 C/C++ 开发)为简化起见,这里我推荐微软(;-))的----
Office 2000 Web Component。;-)

在前面一文中我介绍过控件与数据结合的几种方式,我们来一一分析
用 Excel 2000 的 chart control 如何实现。

A. 逐行赋值法
Excel 2000 chart control 有两种赋值方法:数组,字符串。
数组法:
代码示例:
----------------------------------
<object id=ChartSpace1 classid=CLSID:0002E500-0000-0000-C000-000000000046 style="width:100%;height:350"></object>

<script language=vbs>
Sub Window_OnLoad()
Dim categories(3), values(3)
    ' 4 个分类
    categories(0) = "White"
    categories(1) = "Bla

时间: 2024-08-25 14:52:27

在 Web 页面中使用图表(chart)表现数据的相关文章

在Web页面中使用Media Player

 在Web页中嵌入Media Player的方法比较简单,只要用HTML中的<Object></Object>可以了,如下所示. <OBJECT ID="WMPlay" WIDTH=320 HEIGHT=240 CLASSID="CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95" CODEBASE=" nsmp2inf.cab#Version=6,4,5,715" STANDBY=

各们大神,江湖救急,在web页面中显示远程服务器桌面问题!!!

问题描述 各们大神,江湖救急,在web页面中显示远程服务器桌面问题!!! 做了一个页面,通过服务器的IP与端口,实现这个页面能够显示服务器的桌面并能进行操作,如果不借助VNC能不能实现?大神们,看到的,知道的,希望不吝赐教...小弟在此感谢!!!

在Web页面中执行Windows程序(转)

在Web页面中执行Windows程序 现在许多公司都面临一个难题:如何在Web环境中执行存在的Windows应用程序.这里就介绍实现这个功能的技术,它争取对代码做最小的改变,完成在Windows环境中应做的一切.现存的Windows应用程序 这里想要在Web中执行的Windows例子程序是非常简单的,它是用VB编写的,其中有一个表单.运行时,在表单上显示雇员的信息,这些信息来源于Access数据库的一个表.表单上设有First.Next.Previous 和 Last按钮,从而允许用户浏览记录.

java 在web页面中把输入框的中文用语音读出来有什么办法?

问题描述 请问下大家,java在web页面中把输入框的中文用语音读出来有什么办法?我在网上找到一个freetts引擎可以实现java语音,但是中文读取的话太不标准了,根本听不懂.请问大家有没有其他免费的引擎,或者是可以调用window自带的方法,因为window有自带的语音,如果能用dll或者其他的方法调用,那就方便很多了,或者是其他一些思路也行,先谢谢大家了. 解决方案 解决方案二:该回复于2010-11-10 09:57:24被版主删除解决方案三:该回复于2010-11-10 15:21:3

asp.net读取word里的内容显示到web页面中怎么做?

问题描述 将word里的内容现实到web页面中并能够修改word里的内容,怎么实现啊,在线等啊 解决方案 解决方案二:我按照读取文本的形式读word文件,读出来的汉字都是乱码该怎么解决,这中读取方式正确吗?DimstreamreaderobjAsStreamReaderDimfilecontAsStringstreamreaderobj=File.OpenText("c:/aspnet.DOC")Dofilecont=streamreaderobj.ReadLine()Response

asp.net-AspNetPager分页控件在同一页面中按条件查询的数据分页的连续问题

问题描述 AspNetPager分页控件在同一页面中按条件查询的数据分页的连续问题 AspNetPager分页控件在同一个页面中多次修改SQL查询语句后的问题,如何在PageChanged事件中取得最新一次查询的SQL字符串值. 我需要在一个页面中根据搜索条件,多次修改SQL查询语句,可是分页控件的BindData(string sql)方法, 在PageChanged事件中引用的private string sql变量却总是首次加载页面时的值,点击分页后就变回了 原来的查询结果.如何使用Asp

技术-渣渣提问:EasyUI在一个页面中可以建几个数据表格

问题描述 渣渣提问:EasyUI在一个页面中可以建几个数据表格 我想知道在一个jsp页面中用easyui技术可以做出几个数据表格,要是想在一个jsp页面出现多个数据表格应该怎么解决 解决方案 解决方案二: 不同的table+不同的id $('#dg1').datagrid(); $('#dg2').datagrid(); $('#dg3').datagrid(); 就行了 解决方案三: 多方几个table,配置data-options分别加载不同的数据源就行了 相关文章 easyui-修改Dat

WEB页面中的结构化数据表示的方式:表格

组织数据和信息是一个不可疏忽的能力.组织内容和文字的方式(一般以copy的形式)会在用户怎样接收内容上有直接的影响.网页设计需要找到一个方法组织内容以使其便于读者扫描和接收.其中一个简洁的方法就是运用数据表格.表格提供结构化的方式来展示大量的信息. 从web发展开始时起,表格就已被使用.表格的结构至今没变,也不会变,这才让它不至于不是表格.结构虽然没变动,不过样式风格却已经有了长远的发展:现在的表格仍然与早期的表格一样有可读性. 数据表格的一般运用 表格轻易就能用简洁和易读的方式来组织数据.它们

AJAX实现web页面中级联菜单的设计

ajax|web|菜单|设计|页面 看了大峡搞的级联菜单,我也班门弄斧一把,嘿嘿,花了一点时间搞了个级联菜单贴上来看看.本例中只要你选择成员分类名称就会自动显示成员名称:    首先在eclipse中建一个项目,名称你自己做主了,这里为Easyjf-menu,对应的浏览器页面代码为: Easyjf-menu.jsp <@page contentType="text/html;charser=UTF-8" language="java"%> <hea