|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
在用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 & "]") 执行上面的语句,将返回记录集对象,其中包括范围内单元格的所有可用信息, 记录集的数值和描述数据的元数据。 返回类别: 教程 上一教程: 正则表达式结合数组提取文章中的文件名 下一教程: 如何增强ASP程序性能(2) 您可以阅读与"ASP实现在WEB中显示电子表格数据(一)显示数据表格的应用"相关的教程: · asp实现在web中显示电子表格数据(一)显示数据表格的应用 · ASP实现在WEB中显示电子表格数据(三)创建数据表列表和名字范围 · asp实现在web中显示电子表格数据(三)创建数据表列表和名字范围 · ASP实现在WEB中显示电子表格数据(二)生成HTML表格 · asp实现在web中显示电子表格数据(四)创建文件选择列表 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |