当前位置:文档之家› ASP中利用OWC控件绘制图表

ASP中利用OWC控件绘制图表

ASP中利用OWC控件绘制图表
ASP中利用OWC控件绘制图表

ASP中利用OWC控件绘制图表在页面动态绘制图表的问题。在asp中动态生成图表主要有2种方式,一是使用表格控制生成;另一种方式是使用office的owc控件生成图表。本文讨论的是如何实现在ASP中用OWC控件动态生成图表图片,保存在服务器端然后发送到浏览器显示,客户端浏览器只要支持标签就能显示图表,可避免直接输出动态图表到客户端时有可能带来的一系列问题。

* OWC简介

OWC是Office Web Compent的缩写,即Microsoft的Office Web组件,它为在Web中绘制图形提供了灵活的同时也是最基本的机制。通过在ASP页面中调用OWC,我们可以轻松地绘制出各种类型的实时图表。

* 下载及安装

下载owc10.exe或owc11.exe文件安装到服务器。

也可以从office上安装。我们需要一个正版授权的Office,然后在Web服务器上运行setup程序。选择定制安装,在工具标题下,只选择中Web组件选项。当然,我们也可以在Web 服务器上安装Office的完整版本,其中自然也就包含了Web组件。接着,Setup程序顺序地完成其它工作,包括组件注册。

下面以在asp页面中生成柱状图为例,说明如何在asp页面中实现图表显示。更多设置请参考安装完成后C:\Program Files\Common Files\Microsoft Shared\Web Components\10\2052中的帮助文档。

aspchart.asp源程序代码如下,本人调试通过。需要注意的是生成的图片要存放服务器的文件夹下,需要这个文件夹的写权限。<%@ Language=VBScript codepage=65001 %>

在ASP中用OWC控件动态生成图表显示

<%

'测试数据

categories=Array("10","20","30","40")

values=Array(11,22,3,5)

'创建owc对象

set chart=Server.CreateObject("OWC10.ChartSpace")

chart.clear

set chartShow=chart.Charts.Add

set chartConst = chart.Constants'设定图表类型,图表类型有很多种,详见OWC帮助文件ChartChartTypeEnum chartShow.type=chartConst.chChartTypeLine 'chChartTypeColumnStacked/chChartTypeColumnClustered

''设定图表是否有图例(Legend)

chartShow.HasLegend=false '(显示图例)

'以下为图表标题设定

chartShow.HasTitle=true

chartShow.Title.Caption="统计表"

set fnt=chartShow.title.font

fnt.size=13

fnt.bold=true

fnt.color="blue"

chartShow.Axes(0).HasTitle=True

chartShow.Axes(0).Title.Caption="T1"

chartShow.Axes(1).HasTitle=True

chartShow.Axes(1).Title.Caption="T2"

chartShow.Axes(1).Title.font.size=10

chartShow.Axes(0).MajorUnit = 5

chartShow.Axes(0).Scaling.Maximum=20

chartShow.SetDatachartConst.chDimCategories, chartConst.chDataLiteral, categories

chartShow.SeriesCollection(0).SetDatachartConst.chDimValues, chartConst.chDataLiteral, values

chartShow.SeriesCollection(0).Interior.Color = "Red"

'chartShow.Axes(chartConst.chAxisPositionLeft).NumberFormat = "0.00%"

'chartShow.Axes(chartConst.chAxisPositionLeft).MajorUnit = 25

'chartShow.Axes(chartConst.chAxisPositionLeft).GroupingUnit=1

'chartShow.Axes(chartConst.chAxisPositionValue).Scaling.Maximum=200

'以上语句定义Y轴最大值,缺省就是根据数据的范围自动定义

With chartShow.SeriesCollection(0).DataLabelsCollection.Add

.HasValue = true

.Font.Size = 9

' .Column.Color = RGB(255, 255, 0)

End With

strChartAbsPath=Server.MapPath("temp")'将图保存到当前路径下的temp文件夹。

strChartRelPath = "temp"

strChart = ExportChartToGIF(chart, strChartAbsPath, strChartRelPath,400,300)

'*****************************

'生成图片的函数

'*****************************

Function ExportChartToGIF(objCSpace, strAbsFilePath, strRelFilePath,picHigh,picWidth)Dim strFileName

Randomize

strFileName = Timer&Rnd&".gif"

'response.writestrAbsFilePath& "/" &strFileName

objCSpace.ExportPicturestrAbsFilePath& "/" &strFileName,"gif",picHigh, picWidthExportChartToGIF = strRelFilePath&"/" &strFileName

End Function

%>


" border="0" />

相关主题
文本预览
相关文档 最新文档