📄 在asp中调用excel画数据图表 .htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0055)http://www.51base.com/article/view_article.asp?id=37968 -->
<HTML lang=zh-cn><HEAD><TITLE>NB联盟</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type><LINK
href="NB联盟19.files/style.css" rel=stylesheet>
<META content="MSHTML 5.00.2614.3500" name=GENERATOR></HEAD>
<BODY><!-- start page body -->
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 class=td id=position
width=773>
<TBODY>
<TR>
<TD class=shadow colSpan=2 height=20 width=262> <A
href="http://www.51base.com/"><IMG border=0
src="NB联盟19.files/logo1.gif"></A> </TD>
<TD align=right width=505>
<P align=left></P></TD></TR></TBODY></TABLE>
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 id=main width=770>
<TBODY>
<TR>
<TD class=tdlbr vAlign=top>
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 id=welcome
style="TABLE-LAYOUT: fixed" width="98%">
<TBODY>
<TR>
<TD style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all"
vAlign=top><FONT color=red><B>文章标题</B></FONT><FONT color=red><B>:
在ASP中调用Excel画数据图表 </B></FONT>
<HR noShade SIZE=1>
<BR>
<P>
在ASP中调用Excel画数据图表,优势有很多,最突出的是可以输出多种形式的图形(总共有72种)。以下是我写的一个通用ASP方法调用Excel画数据图表。</P>
<P><%<BR>'将数据图形化输出<BR>'dataArray二维数组<BR>'virtualFilePath输出图像文件名(虚拟路径)<BR>'nType显示类型<BR>Dim
initType<BR>Sub
ExportPicture(dataArray,virtualFilePath,nType)<BR>Dim excelapp ' As
New excel.Application<BR>Dim excelwbk ' As excel.Workbook<BR>Dim
excelcht ' As excel.Chart<BR>Dim excelsht 'As excel.Worksheet<BR>Dim
idx,idy,ftype,usedData,totalcount,count:count = 1<BR>On Error Resume
Next<BR><BR>Set excelapp =
Server.CreateObject("Excel.Application")<BR>Set excelwbk =
excelapp.Workbooks.Add()<BR>Set excelcht =
excelwbk.Charts.Add()<BR>Set excelsht =
excelwbk.Worksheets.Add()<BR>If UCase(Right(virtualFilePath,4)) =
".JPG" Or UCase(Right(virtualFilePath,4)) = ".JPEG" Then<BR>ftype =
"jpg"<BR>Else<BR>ftype = "gif"<BR>End If<BR>initType = nType<BR>For
idx=LBound(dataArray,1) To UBound(dataArray,1)<BR>For
idy=LBound(dataArray,2) To
UBound(dataArray,2)<BR>excelsht.Cells(idx+1,idy+1) =
dataArray(idx,idy)<BR>Next<BR>Next<BR><BR>Set usedData =
excelsht.usedRange<BR>excelcht.SeriesCollection.Add
usedData<BR><BR>excelcht.HasLegend = True<BR>excelcht.HasTitle =
True<BR>'excelcht.ChartTitle.Caption =
"部门员工分布图"<BR>excelcht.ApplyCustomType nType<BR>excelcht.Export
Server.Mappath(virtualFilePath), ftype<BR>excelsht.Close
False<BR>excelwbk.Close False<BR>Set usedData = Nothing<BR>Set
excelcht = Nothing<BR>Set excelwbk = Nothing<BR>Set excelapp =
Nothing<BR>End Sub<BR>%><BR><Select name="sel"
Onchange="changePict()"><BR><Option
value="51">二维柱形图</Option><!--xlColumnClustered<BR><Option
value="52">xlColumnStacked</Option><BR><Option
value="53">xlColumnStacked100</Option>--><BR><Option
value="54">三维柱状图</Option><!--xl3DColumnClustered<BR><Option
value="55">xl3DColumnStacked</Option><BR><Option
value="56">xl3DColumnStacked100</Option>--><BR><Option
value="57">二维条形图</Option><!--xlBarClustered<BR><Option
value="58">xlBarStacked</Option><BR><Option
value="59">xlBarStacked100</Option>--><BR><Option
value="60">三维条状图</Option><!--xl3DBarClustered<BR><Option
value="61">xl3DBarStacked</Option><BR><Option
value="62">xl3DBarStacked100</Option>--><BR><Option
value="63">折线图</Option><!--xlLineStacked<BR><Option
value="64">xlLineStacked100</Option><BR><Option
value="65">xlLineMarkers</Option><BR><Option
value="66">xlLineMarkersStacked</Option><BR><Option
value="67">xlLineMarkersStacked100</Option><BR><Option
value="68">xlPieOfPie</Option><BR><Option
value="69">xlPieExploded</Option><BR><Option
value="70">xl3DPieExploded</Option><BR><Option
value="71">xlBarOfPie</Option>--><BR><Option
value="72">曲线图</Option><!--xlXYScatterSmooth<BR><Option
value="73">xlXYScatterSmoothNoMarkers</Option><BR><Option
value="74">xlXYScatterLines</Option><BR><Option
value="75">xlXYScatterLinesNoMarkers</Option>--><BR><Option
value="76">折线面积图</Option><!--xlAreaStacked<BR><Option
value="77">xlAreaStacked100</Option><BR><Option
value="78">xl3DAreaStacked</Option><BR><Option
value="79">xl3DAreaStacked100</Option><BR><Option
value="80">xlDoughnutExploded</Option><BR><Option
value="81">xlRadarMarkers</Option><BR><Option
value="82">xlRadarFilled</Option><BR><Option
value="83">xlSurface</Option><BR><Option
value="84">xlSurfaceWireframe</Option><BR><Option
value="85">xlSurfaceTopView</Option><BR><Option
value="86">xlSurfaceTopViewWireframe</Option><BR><Option
value="15">xlBubble</Option><BR><Option
value="87">xlBubble3DEffect</Option><BR><Option
value="88">xlStockHLC</Option><BR><Option
value="89">xlStockOHLC</Option><BR><Option
value="90">xlStockVHLC</Option><BR><Option
value="91">xlStockVOHLC</Option>--><BR><Option
value="92">竖向圆柱图</Option><!--xlCylinderColClustered<BR><Option
value="93">xlCylinderColStacked</Option><BR><Option
value="94">xlCylinderColStacked100</Option>--><BR><Option
value="95">横向圆柱图</Option><!--xlCylinderBarClustered<BR><Option
value="96">xlCylinderBarStacked</Option><BR><Option
value="97">xlCylinderBarStacked100</Option><BR><Option
value="98">xlCylinderCol</Option><BR><Option
value="99">xlConeColClustered</Option><BR><Option
value="100">xlConeColStacked</Option><BR><Option
value="101">xlConeColStacked100</Option><BR><Option
value="102">xlConeBarClustered</Option><BR><Option
value="103">xlConeBarStacked</Option><BR><Option
value="104">xlConeBarStacked100</Option><BR><Option
value="105">xlConeCol</Option><BR><Option
value="106">xlPyramidColClustered</Option><BR><Option
value="107">xlPyramidColStacked</Option><BR><Option
value="108">xlPyramidColStacked100</Option><BR><Option
value="109">xlPyramidBarClustered</Option><BR><Option
value="110">xlPyramidBarStacked</Option><BR><Option
value="111">xlPyramidBarStacked100</Option><BR><Option
value="112">xlPyramidCol</Option><BR><Option
value="-4100">xl3DColumn</Option><BR><Option
value="4">xlLine</Option><BR><Option
value="-4101">xl3DLine</Option>--><BR><Option
value="-4102">饼图</Option><!--xl3DPie--><BR><Option
value="5">扇面图</Option><!--xlPie<BR><Option
value="-4169">xlXYScatter</Option><BR><Option
value="-4098">xl3DArea</Option><BR><Option
value="1">xlArea</Option>--><BR><Option
value="-4120">圆环图</Option><!--xlDoughnut--><BR><Option
value="-4151">雷达图</Option><!--xlRadar--><BR></Select><BR><Script
language=javascript><BR>function initMenu(formobj)<BR>{<BR>var
nType="<%=initType%>";<BR>var
i;<BR>for(i=0;i<formobj.sel.options.length;i++)<BR>{<BR>if(formobj.sel.options[i].value==nType)<BR>{<BR>formobj.sel.options[i].selected=true;<BR>break;<BR>}<BR>}<BR>}<BR></Script></P>
<P>
把以上代码存成一个通用文件,命名为DataToChart.asp,再写一个调用的文件代码如下:</P>
<P><%<BR>Response.ContentType="text/html;Charset=GB2312;"<BR>Randomize<BR>Dim
dbrest,DBConn,photoPath,pidx,count,nnType:nnType=Request.Form("sel")<BR>Set
DBConn=Session("DBConn")<BR>Dim dArray()<BR><BR>If Not
IsNumeric(nnType) Or IsEmpty(nnType) Or nnType=""
Then<BR>nnType=51<BR>End If<BR>Set dbrest =
Server.CreateObject("ADODB.Recordset")<BR>dbrest.Open "Select
Count(Organization.OrgId) From Org_User Right Join Organization On
Org_User.OrgID=Organization.OrgID", DBConn, 1, 3<BR>count =
dbrest(0)<BR>dbrest.close<BR>If count<1 Then<BR>count = 1<BR>End
If<BR>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<BR>ReDim
dArray(1,dbrest.RecordCount-1)<BR>pidx=0<BR>While Not
dbrest.EOF<BR>dArray(0,pidx) = dbrest(0) & "(" &
FormatPercent(dbrest(1)/count) & ")"<BR>dArray(1,pidx) =
dbrest(1)<BR>pidx = pidx +
1<BR>dbrest.MoveNext<BR>Wend<BR>dbrest.Close<BR>Set
dbrest=Nothing<BR>photoPath =
"./../../Chinese/Working/TempPhoto/HRM_" & Session("UserID")
& ".gif"<BR>Call
ExportPicture(dArray,photoPath,nnType)<BR>%><BR><BR><html><BR><head><title>部门员工分布图</title></head><BR><body><BR><Table
align=center><BR><form name="form1"
method=post><BR><Tr><BR><Td><BR><!--#include
file="DataToChart.asp"--> <BR></Td><BR></Tr><BR><Tr><BR><Td
align=center><BR><img
src="<%=photoPath%>?abc=<%=rnd()%>"
border=0><BR></Td><BR></Tr><BR></form><BR></Table><BR><Script
language=javascript><BR>function
changePict()<BR>{<BR>document.form1.action="./../../Chinese/HRM/Dept_Chart.asp?sel=1&"+Date();<BR>document.form1.submit();<BR>}<BR>initMenu(document.form1);<BR></Script><BR></body><BR></html></P>
<P>
以上是调用Excel画数据图表的通用方法,各位有好的建议请发邮件给我:zlyperson@163.net</P><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center border=0 cellPadding=2 cellSpacing=0 id=footer width=770>
<TBODY>
<TR>
<TD align=middle class=tdt>
<P align=center></P></TD></TR></TBODY></TABLE><BR></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -