chartinasp.asp

来自「Excel大全及示例文件-657M-pdf版.zip」· ASP 代码 · 共 130 行

ASP
130
字号
<% @Language=VBSCRIPT %> 
<% 

'常量声明
Const adOpenStatic = 3 
Const adLockReadOnly = 1 
Const xlColumnClustered = 51 
Const xlRows = 1 
Const xlLocationAsObject = 2 
Const xlCategory = 1 
Const xlPrimary = 1 
Const xlValue = 2 
Const xlHtml = 44 

'变量声明
dim myExcel '代表Excel应用软件的对象变量
dim fso '代表FileSystemObject的对象变量
dim filename '存储图表文件名称的字符串变量
dim conn '代表Connection对象的对象变量
dim rst '代表Recordset对象的对象变量
Dim wkb '代表工作簿对象的对象变量
Dim rng '代表单元格区域对象的对象变量
Dim fld '枚举字段的虚拟变量
Dim rowNum '行计数器
Dim colNum '列计数器
Dim varData '存储返回的记录集的变量

Set myExcel= Server.Createobject("Excel.Application") 
Set fso = Server.Createobject("Scripting.FileSystemObject") 

'如果有的话,那么删除之前准备的图表	Line 30
filename = "c:\ExcelASP\ExcelChartinASP.htm" 
If fso.FileExists(filename) Then 
fso.DeleteFile filename, True 
End If 

'释放FileSystemObject
Set fso = Nothing 

'创建一个新工作簿,要确保它含有两个工作表
set wkb = myExcel.Workbooks.Add 

'从Access数据库获取数据作图表
'创建和建立对数据库的链接
Set conn = Server.CreateObject("ADODB.Connection") 

'打开Northwind数据库
conn.Open "Driver={Microsoft Access Driver (*.mdb)};" & _ 
"DBQ=" & Server.MapPath("Northwind.mdb") 

'创建记录集,并使用打开的链接获取数值	Line 50
Set rst = Server.CreateObject("ADODB.Recordset") 

'使用一个静态光标(3)以只读方式(1)打开记录集。确保字段名称与示例数据库文件一致
rst.Open "SELECT 类别名称 As [产品类别], " & _ 
"SUM(订购量) AS [总销量] " & _ 
"FROM 类别 " & _ 
"INNER JOIN (产品 INNER JOIN [订单明细] ON " & _ 
"产品.产品ID = [订单明细].产品ID) ON " & _ 
"类别.类别ID = 产品.类别ID " & _ 
"GROUP BY 类别.类别名称 " & _ 
"ORDER BY 类别.类别名称", _ 
conn, adOpenStatic, adLockReadOnly 

'添加字段名称为列标题
For fld = 0 to rst.Fields.Count - 1 
colNum = colNum + 1 
wkb.ActiveSheet.Cells(1, colNum).Value = _ 
rst.Fields(fld).Name 
Next 

'存储记录到变量
varData = rst.GetRows() 

'将数据库里的数据放置到工作表
For rowNum = 1 To rst.RecordCount 
For colNum = 0 To UBound(varData) 
wkb.ActiveSheet.Cells(rowNum + 1, colNum + 1).Value = _ 
varData(colNum, rowNum - 1) 
Next 
Next 

'关闭记录集并释放该对象
rst.Close 
set rst = Nothing 

'关闭对数据库的链接
conn.Close 
Set conn = Nothing 

'自适应使用区域的列宽
wkb.ActiveSheet.UsedRange.Columns.Autofit 

'设置图表的数据区域
set rng = wkb.Sheets("Sheet1").Range("A1").CurrentRegion 

'基于获取的数据创建图表
wkb.Charts.Add 

'设置图表格式
wkb.ActiveChart.ChartType = xlColumnClustered 

'指定图表数据源
wkb.ActiveChart.SetSourceData rng, xlRows 

'放置图表到第二个工作表
wkb.ActiveChart.Location xlLocationAsObject, "Sheet2" 

'添加图表和数值轴标题
With wkb.ActiveChart 
.HasTitle = True 
.ChartTitle.Characters.Text = "分类别销量" 
.Axes(xlValue, xlPrimary).HasTitle = True 
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "销量" 
End With 

'保存该工作簿为网页(HTML格式)
wkb.SaveAs filename, xlHtml 

'关闭该工作簿
myExcel.ActiveWorkbook.Close 

'关闭Excel应用软件并释放对象
myExcel.Quit 
Set myExcel = Nothing 

' 在网页浏览器里显示创建的网页
Response.Redirect filename 
%> 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?