利用ASP显示Excel电子表格

本课程要求在系统中已安装了 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 

展开阅读全文

没有更多推荐了,返回首页