本课程要求在系统中已安装了 Microsoft Excel,且示例不支持在 64 位平台上运行,除非 Excel 是为 64 位平台开发的版本。
本课程演示如何在网页中显示一个 Microsoft Excel 电子表格。如同在以前课程中那样,将使用 ADO。然而,在本课程中,您将连接到 Excel 电子表格,而不是 Access 数据库。
准备将在 Active Server Page 中显示的 Excel 电子表格
使用 Excel 98 或 Excel 2000,创建一个电子表格,并将其保存在 x:/Inetpub/Wwwroot/Tutorial 中,文件名为 ASPTOC.xls。创建电子表格时不要包括任何特殊的格式或列标签。
用随机数据填充一些字段。将单元格的第一行作为列名称。
选中要在网页中显示的电子表格的行和列(在某一单元格中单击,然后沿对角线拖动鼠标选中一组单元格)。
在“插入”菜单上,选择“名称”,然后单击“定义”。所有工作簿的名称和单元格区域都在此对话框中定义。
确保选中的单元格区域正确显示在底部。为您的工作簿键入名称“MYBOOK”,然后选择“添加”。无论何时改变 MYBOOK 时,请确保在“定义名称”窗口底部的“引用位置”文本框中显示了正确的单元格区域。仅仅在新选中一组单元格后选择 MYBOOK,不会更新单元格区域。
在名称显示在工作簿列表后,单击“确定”按钮。保存电子表格。
关闭 Excel,去除对文件的锁定,以便 ASP 网页可以对其进行访问。
在第 3 课的示例中,将在连接字符串中指定提供程序的名称,以映射到特定的 ADO DLL。在本示例中,将使用一个驱动程序名称,使 ASP 使用此驱动程序的默认提供程序。
将下列代码复制并粘贴到文本编辑器中,将文件保存在 x:/Inetpub/Wwwroot/Tutorial 目录中,文件名为“ViewExcel.asp”。在浏览器地址栏中键入 http://localhost/Tutorial/ViewExcel.asp 查看此示例。
<%@ Language=VBScript %>
<html>
<head>
<title>在网页中显示 Excel 电子表格</title>
</head>
<body>
<font face="宋体">
<h2>在网页中显示 Excel 电子表格</h2>
<%
'创建连接字符串,创建一个 Connection 对象示例,
'然后连接到数据库。
strDriver = "Driver={Microsoft Excel Driver (*.xls)};DBQ=C:/Inetpub/Wwwroot/Tutorial/MyExcel.xls;"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open strDriver
'使用已保存的工作簿名称从 Excel 电子表格中选择记录。
strSELECT = "SELECT * from `MYBOOK`"
'创建一个 ADO Recordset 对象示例,并将其连接到 objConn。
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSELECT, objConn
'使用 GetString 方法打印表中的单元格和行。
Response.Write "<H4>使用 GetString 方法将 Excel 数据取入一个字符串</H4>"
Response.Write "<table border=1 ><tr><td>"
Response.Write objRS.GetString (, , "</td><td><font face="MS Gothic">", "</font></td></tr><tr><td>", NBSPACE)
Response.Write "</td></tr></table>"
'移动到第一条记录。
objRS.MoveFirst
'使用 ViewGB.asp 方法打印表中的单元格和行。
Response.Write "<H4>使用 MoveNext 方法获取 Excel 数据 </H4>"
'使用相应方法和属性打印输出 Recordset 对象的
'字段名称和属性
Response.Write "<table border=1 ><tr>"
'对于当前行中的每一列...
For i = 0 to (objRS.Fields.Count - 1)
' 输出字段名称。
Response.Write "<td><font face="MS Gothic"><B>" & objRS(i).Name & "</B></font></td>"
Next
'如果还没有到达记录集的尾部...
While Not objRS.EOF
Response.Write "</tr><tr>"
'对于当前行中的每一列...
For i = 0 to (objRS.Fields.Count - 1)
' 输出字段中的数据。
%><td><font face="宋体"><%=objRS(i)%></font></td><%
Next
'移动到下一行。
objRS.MoveNext
Wend
Response.Write "</tr></table>"
'关闭连接。
objConn.Close
%>
</font>
</body>
</html>
在浏览器中,您应看到下列结果:
在网页中显示 Excel 电子表格
使用 GetString 方法将 Excel 数据取入一个字符串
A2 B2 C2
A3 B3 C3
使用 MoveNext 方法获取 Excel 数据
A1 B1 C1
A2 B2 C2
A3 B3 C3
利用ASP显示Excel电子表格
最新推荐文章于 2011-11-15 23:57:02 发布