浏览器大全:是一个提供流行浏览器教程、在线学习分享的学习平台!

在ASP中调用Excel画数据图表

在ASP中调用Excel画数据图表,优势有很多,最突出的是可以输出多种形式的图形(总共有72种)。以下是我写的一个通用ASP方法调用Excel画数据图表。

<%
'将数据图形化输出
'dataArray二维数组
'virtualFilePath输出图像文件名(虚拟路径)
'nType显示类型
Dim initType
Sub ExportPicture(dataArray,virtualFilePath,nType)
Dim excelapp ' As New excel.Application
Dim excelwbk ' As excel.Workbook
Dim excelcht ' As excel.Chart
Dim excelsht 'As excel.Worksheet
Dim idx,idy,ftype,usedData,totalcount,count:count = 1
On Error Resume Next

Set excelapp = Server.CreateObject("Excel.Application")
Set excelwbk = excelapp.Workbooks.Add()
Set excelcht = excelwbk.Charts.Add()
Set excelsht = excelwbk.Worksheets.Add()
If UCase(Right(virtualFilePath,4)) = ".JPG" Or UCase(Right(virtualFilePath,4)) = ".JPEG" Then
ftype = "jpg"
Else
ftype = "gif"
End If
initType = nType
For idx=LBound(dataArray,1) To UBound(dataArray,1)
For idy=LBound(dataArray,2) To UBound(dataArray,2)
excelsht.Cells(idx+1,idy+1) = dataArray(idx,idy)
Next
Next

Set usedData = excelsht.usedRange
excelcht.SeriesCollection.Add usedData

excelcht.HasLegend = True
excelcht.HasTitle = True
'excelcht.ChartTitle.Caption = "部门员工分布图"
excelcht.ApplyCustomType nType
excelcht.Export Server.Mappath(virtualFilePath), ftype
excelsht.Close False
excelwbk.Close False
Set usedData = Nothing
Set excelcht = Nothing
Set excelwbk = Nothing
Set excelapp = Nothing
End Sub
%>
<Select name="sel" Onchange="changePict()">
<Option value="51">二维柱形图</Option><!--xlColumnClustered
<Option value="52">xlColumnStacked</Option>
<Option value="53">xlColumnStacked100</Option>-->
<Option value="54">三维柱状图</Option><!--xl3DColumnClustered
<Option value="55">xl3DColumnStacked</Option>
<Option value="56">xl3DColumnStacked100</Option>-->
<Option value="57">二维条形图</Option><!--xlBarClustered
<Option value="58">xlBarStacked</Option>
<Option value="59">xlBarStacked100</Option>-->
<Option value="60">三维条状图</Option><!--xl3DBarClustered
<Option value="61">xl3DBarStacked</Option>
<Option value="62">xl3DBarStacked100</Option>-->
<Option value="63">折线图</Option><!--xlLineStacked
<Option value="64">xlLineStacked100</Option>
<Option value="65">xlLineMarkers</Option>
<Option value="66">xlLineMarkersStacked</Option>
<Option value="67">xlLineMarkersStacked100</Option>
<Option value="68">xlPieOfPie</Option>
<Option value="69">xlPieExploded</Option>
<Option value="70">xl3DPieExploded</Option>
<Option value="71">xlBarOfPie</Option>-->
<Option value="72">曲线图</Option><!--xlXYScatterSmooth
<Option value="73">xlXYScatterSmoothNoMarkers</Option>
<Option value="74">xlXYScatterLines</Option>
<Option value="75">xlXYScatterLinesNoMarkers</Option>-->
<Option value="76">折线面积图</Option><!--xlAreaStacked
<Option value="77">xlAreaStacked100</Option>
<Option value="78">xl3DAreaStacked</Option>
<Option value="79">xl3DAreaStacked100</Option>
<Option value="80">xlDoughnutExploded</Option>
<Option value="81">xlRadarMarkers</Option>
<Option value="82">xlRadarFilled</Option>
<Option value="83">xlSurface</Option>
<Option value="84">xlSurfaceWireframe</Option>
<Option value="85">xlSurfaceTopView</Option>
<Option value="86">xlSurfaceTopViewWireframe</Option>
<Option value="15">xlBubble</Option>
<Option value="87">xlBubble3DEffect</Option>
<Option value="88">xlStockHLC</Option>
<Option value="89">xlStockOHLC</Option>
<Option value="90">xlStockVHLC</Option>
<Option value="91">xlStockVOHLC</Option>-->
<Option value="92">竖向圆柱图</Option><!--xlCylinderColClustered
<Option value="93">xlCylinderColStacked</Option>
<Option value="94">xlCylinderColStacked100</Option>-->
<Option value="95">横向圆柱图</Option><!--xlCylinderBarClustered
<Option value="96">xlCylinderBarStacked</Option>
<Option value="97">xlCylinderBarStacked100</Option>
<Option value="98">xlCylinderCol</Option>
<Option value="99">xlConeColClustered</Option>
<Option value="100">xlConeColStacked</Option>
<Option value="101">xlConeColStacked100</Option>
<Option value="102">xlConeBarClustered</Option>
<Option value="103">xlConeBarStacked</Option>
<Option value="104">xlConeBarStacked100</Option>
<Option value="105">xlConeCol</Option>
<Option value="106">xlPyramidColClustered</Option>
<Option value="107">xlPyramidColStacked</Option>
<Option value="108">xlPyramidColStacked100</Option>
<Option value="109">xlPyramidBarClustered</Option>
<Option value="110">xlPyramidBarStacked</Option>
<Option value="111">xlPyramidBarStacked100</Option>
<Option value="112">xlPyramidCol</Option>
<Option value="-4100">xl3DColumn</Option>
<Option value="4">xlLine</Option>
<Option value="-4101">xl3DLine</Option>-->
<Option value="-4102">饼图</Option><!--xl3DPie-->
<Option value="5">扇面图</Option><!--xlPie
<Option value="-4169">xlXYScatter</Option>
<Option value="-4098">xl3DArea</Option>
<Option value="1">xlArea</Option>-->
<Option value="-4120">圆环图</Option><!--xlDoughnut-->
<Option value="-4151">雷达图</Option><!--xlRadar-->
</Select>
<Script language=javascript>
function initMenu(formobj)
{
var nType="<%=initType%>";
var i;
for(i=0;i<formobj.sel.options.length;i++)
{
if(formobj.sel.options[i].value==nType)
{
formobj.sel.options[i].selected=true;
break;
}
}
}
</Script>

把以上代码存成一个通用文件,命名为DataToChart.asp,再写一个调用的文件代码如下:

<%
Response.ContentType="text/html;Charset=GB2312;"
Randomize
Dim dbrest,DBConn,photoPath,pidx,count,nnType:nnType=Request.Form("sel")
Set DBConn=Session("DBConn")
Dim dArray()

If Not IsNumeric(nnType) Or IsEmpty(nnType) Or nnType="" Then
nnType=51
End If
Set dbrest = Server.CreateObject("ADODB.Recordset")
dbrest.Open "Select Count(Organization.OrgId) From Org_User Right Join Organization On Org_User.OrgID=Organization.OrgID", DBConn, 1, 3
count = dbrest(0)
dbrest.close
If count<1 Then
count = 1
End If
dbrest.Open "Select OrgName,Count(Org_User.OrgId) From Org_User Right Join Organization On Org_User.OrgID=Organization.OrgID Group by Organization.OrgID,orgName", DBConn, 1, 3
ReDim dArray(1,dbrest.RecordCount-1)
pidx=0
While Not dbrest.EOF
dArray(0,pidx) = dbrest(0) & "(" & FormatPercent(dbrest(1)/count) & ")"
dArray(1,pidx) = dbrest(1)
pidx = pidx + 1
dbrest.MoveNext
Wend
dbrest.Close
Set dbrest=Nothing
photoPath = "./../../Chinese/Working/TempPhoto/HRM_" & Session("UserID") & ".gif"
Call ExportPicture(dArray,photoPath,nnType)
%>

<html>
<head><title>部门员工分布图</title></head>
<body>
<Table align=center>
<form name="form1" method=post>
<Tr>

<!--#include file="DataToChart.asp"-->
</
</Tr>
<Tr>
<Td align=center>
<img src="<%=photoPath%>?abc=<%=rnd()%>" border=0>
</
</Tr>
</form>
</Table>
<Script language=javascript>
function changePict()
{
document.form1.action="./../../Chinese/HRM/Dept_Chart.asp?sel=1&"+Date();
document.form1.submit();
}
initMenu(document.form1);
</Script>
</body>
</html>

以上是调用Excel画数据图表的通用方法,各位有好的建议请发邮件给我:zlyperson@163.net


相关软件

2345加速浏览器官方版

2345加速浏览器官方版 | 56.2MB

2345加速浏览器官方版

新一代2345加速浏览器采用Chromium和IE双内核,主打极速与安全特性。基于Chromium深度定制,引入网页智能预加载技术,访问网页更快速..

QQ浏览器官方正式版

QQ浏览器官方正式版 | 49.67MB

QQ浏览器官方正式版

QQ浏览器秉承TT浏览器1-4系列方便易用的特点,但技术架构不同,交互和视觉表现也重新设计,采用Chromium内核+IE双内核,让浏览快速稳定...

百度浏览器最新版下载

百度浏览器最新版下载 | 13.3MB

百度浏览器最新版下载

q百度浏览器,是一款简洁轻快、智能懂你的浏览器。依靠百度强大的搜索平台,在满足用户浏览网页的基础上,它整合百度体系业务优势,带给用户更方便的浏览方式功能...

UC浏览器官方正式版

UC浏览器官方正式版 | 44.2MB

UC浏览器官方正式版

UC浏览器(UC Browser)是UC Mobile Limited在2004年8月开发的一款软件,分uc手机浏览器和uc浏览器电脑版。UC浏览器是全球使用量最大的第三方手机浏览器...

猎豹浏览器2022最新版下载

猎豹浏览器2022下载 | 45MB

猎豹浏览器2022最新版下载

猎豹安全浏览器对Chrome的Webkit内核进行了超过100项的技术优化,访问网页速度更快。其具有首创的智能切换引擎,动态选择内核匹配不同网页...

360安全浏览器官方版下载

360安全浏览器下载 | 21.4MB

360安全浏览器官方版下载

360安全浏览器拥有全国最大的恶意网址库,采用恶意网址拦截技术,可自动拦截挂马、欺诈、网银仿冒等恶意网址。独创沙箱技术,在隔离模式即使访问****也不会感染...