欢迎光临
我们一直在努力

asp实现在web中显示电子表格数据(一)显示数据表格的应用

建站超值云服务器,限时71元/月

   在用asp语言开发的web数据库应用程序中,ado (activex data objects) 已经成为非常流行的工具,而且对于真正的关系型数据库,比如oracle、sql server,它都不会有局限性。ado能够存取多种不同的数据格式,ms excel电子数据表格就是其中之一。

   关于这个应用

   可供下载的例程代码中包括一个asp文件readx1.asp,一个excel文件theworkbook.xls。你也可以另外加入一些电子数据表文件。

   执行readxl.asp页面,将显示出可用的电子数据表文件列表。选择好一个文件,并提交表单后,你将会看到:

一个下拉菜单,其中是工作表名称

一个下拉菜单,其中是命名的范围

一个单元格范围输入框

第一个工作表的全部内容

  

   可以选择工作簿文件中的另外一个工作表,或者输入符合excel格式的单元格范围数值,比如:d20:e21 或者 sheet3!f12:j22。注意:在ado和odbc驱动程序中,要用$符合替换分界符号!。

   实现步骤

   现在对这个应用程序已经有了初步的认识,下面开始讨论asp代码,看看如何读取电子数据表的数据,如何找到电子数据簿

(workbook)文件中可用的电子数据表(worksheet)和范围,并看看实现文件列表选择的技术。这里假设你已经熟悉了编写html表单的技术,所以对此不做详细介绍。

   基本条件

   下面将涉及到ado对象、方法、属性、收集和常量。在服务器上安装iis后,ado就存在了,并且还有相关文档,地址是http://yourserver/iishelp/ado210.chm (版本2.1),或者http://yourserver/iishelp/ado/docs/(老版本1.5)。如果需要升级ado,可以从http://www.microsoft.com/data/download.htm下载最新版本的mdac工具包进行安装。

   实现“文件列表选择”使用到了内建的vbscript脚本对象,相关文档可以查看http://yourserver/iishelp/vbscript/htm/vbstoc.htm,如果想查看最新的文档,请访问http://msdn.microsoft.com/scripting

(版本5)。当然,在服务器端和客户端,你都不需要安装ms excel。

   读取电子数据表(worksheet)数据

   通过ado读取电子数据表与读取数据库表的方法基本是一样的。从下图可以看到,电子数据表的行被称作记录records,列被称作字段fields。电子数据表或者单元格的范围可以被看成表tables,并按照记录集recordsets进行存取。

spreadsheet database html

< table >

< tr >

< th >namea< /th >

< th >nameb< /th >

< th >namec< /th >

< /tr >< tr >

< td >1< /td >

< td >2< /td >

< td >3< /td >

< /tr >< tr >

< td >11< /td >

< td >12< /td >

< td >13< /td >

< /tr >

< /table >

   执行下面的步骤,从数据库表中读取数据并显示:

连接数据库(同样:打开数据簿文件)

读取记录集recordset(同样:读取一定范围的单元格)

循环每一个记录(同样:每一行),经过格式化,显示

   建立ado连接

   在连接数据库或者打开文件前,需要了解一些信息。其中只要是设置名叫dsn的odbc驱动,但为每一个数据表都建立这样的odbc驱动,是非常麻烦的,因为这需要在服务器的控制台上通过“控制面板/odbc设置”手工完成。

   幸好,asp提供了替代dsn的其他方法,它可以非常容易地在运行时建立连接。比如,字符串“driver={microsoft excel driver?*.xls)};readonly=1;dbq=c:dirfile.xls",表示了替代dsn打开文件c:dirfile.xls,因此通过这种方法仅仅需要提供给asp程序一个文件名即可。执行下面的代码,将从表单中读取文件名,然后转换为全路径,接着生成连接字符串,最后建立并打开这个连接。

vxlfile = request("xlbook")

vxlfilepath = server.mappath(vxlfile) assumes file in current directory

vconnstring = "driver={microsoft excel driver (*.xls)};readonly=1;dbq=" & _

vxlfilepath

set oconn = server.createobject("adodb.connection")

oconn.open vconnstring

   如果想查看更多的非dsn连接信息,请打开windows或者nt system目录下的帮助文件odbcjet.hlp。

   读取记录集

   连接上电子数据簿文件后,读取一定范围的单元格数据就很简单了。尽管不是必须的,但还是建议:用符合“[” 和 “]”包含住单元格的范围定义。只所以这么做,是以防在数据库的操作中产生非法的符合。

vxlrange = request("xlrange")

set ors = oconn.execute("[" & vxlrange & "]")

   执行上面的语句,将返回记录集对象,其中包括范围内单元格的所有可用信息, 记录集的数值和描述数据的元数据。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » asp实现在web中显示电子表格数据(一)显示数据表格的应用
分享到: 更多 (0)

相关推荐

  • 暂无文章