![](upload/erji2.jpg)
ASP读EXCEL2000的文章!!
<%
'=====================ASP读取EXCEL注事项===========================
'i)将Excel97或Excel2000生成的XLS文件(book)看成一个数据库,其中的每一个工作表(sheet)看成数据库表
'ii)ADO假设Excel中的第一行为字段名.所以你定义的范围中必须要包括第一行的内容
'iii)Excel中的行标题(即字段名)不能够包含数字. Excel的驱动在遇到这种问题时就会出错的。例如你的行标题名为“F1”
'iiii)如果你的Excel电子表格中某一列同时包含了文本和数字的话,那么Excel的ODBC驱动将不能够正常, 处理这一行的数据类型,你必须要保证该列的数据类型一致
★点击设计★ http://www.djasp.Net 全力打造WEB技术站点,欢迎大家访问!
Dim Conn,Driver,DBPath,Rs
' 建立Connection对象
Set Conn = Server.CreateObject("ADODB.Connection")
Driver = "Driver={Microsoft Excel Driver (*.xls)};"
DBPath = "DBQ=" & Server.MapPath( "test.xls" )
'调用Open 方法打开数据库
Conn.Open Driver & DBPath
本文由 点击设计 http://www.djasp.Net 收集整理。谢绝无聊之人转载!
'DSN连接方式
'Conn.Open "Dsn=test"
'注意 表名一定要以下边这种格试 "[表名$]" 书写
Sql="Select * From [Sheet1$] where 序号=0"
Set Rs=Conn.Execute(Sql)
盗版它人网站的内容可耻,您查看的内容来源于★点击设计★www.djasp.Net
IF Rs.Eof And Rs.Bof Then
Response.write "没有找到您需要的数据!!"
Else
★点击设计★ http://www.djasp.Net 全力打造WEB技术站点,欢迎大家访问!
Do While Not Rs.EOF
盗版它人网站的内容可耻,您查看的内容来源于★点击设计★www.djasp.Net
Response.write Rs("姓名")
盗版它人网站的内容可耻,您查看的内容来源于★点击设计★www.djasp.Net
Rs.MoveNext
Loop
End IF
本文由 点击设计 http://www.djasp.Net 收集整理。谢绝无聊之人转载!
Rs.Close
Set Rs=nothing
Conn.Close
Set Conn=Nothing
'Response.Write "成功!"
%>
========================================================
6.ASP与电子表格EXCEL的交互操作
盗版它人网站的内容可耻,您查看的内容来源于★点击设计★www.djasp.Net
Here we go again with another sample for Excel, this time we will be using ASP to create a chart. You all
asked me for it, now here is the solution. Thanks again for all your nice comments :)
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
First we set the type of script
★点击设计★ http://www.djasp.Net 专业的WEB编程资讯技术站点,欢迎访问!
<%@ LANGUAGE="VBSCRIPT" %>
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
Make the object, and set the object to an Excelsheet
请勿盗版 ★点击设计★ http://www.djasp.Net 网站上的内容,谢谢合作!
Dim MyExcelChart
Set MyExcelChart = CreateObject("Excel.Sheet")
★点击设计★ http://www.djasp.Net 专业的WEB编程资讯技术站点,欢迎访问!
Now lets write the rest of the script, see the comments
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
' show or dont show excel to user, TRUE or FALSE
MyExcelChart.Application.Visible = True
★点击设计★ http://www.djasp.Net 全力打造WEB技术站点,欢迎大家访问!
' populate the cells
MyExcelChart.ActiveSheet.Range("B2:k2").Value = Array
("Week1", "Week2", "Week3", "Week4", "Week5", "Week6", "Week7", "Week8", "Week9", "Week10")
MyExcelChart.ActiveSheet.Range("B3:k3").Value = Array
("67", "87", "5", "9", "7", "45", "45", "54", "54", "10")
MyExcelChart.ActiveSheet.Range("B4:k4").Value = Array
("10", "10", "8", "27", "33", "37", "50", "54", "10", "10")
MyExcelChart.ActiveSheet.Range("B5:k5").Value = Array
("23", "3", "86", "64", "60", "18", "5", "1", "36", "80")
MyExcelChart.ActiveSheet.Cells(3,1).Value="Internet Explorer"
MyExcelChart.ActiveSheet.Cells(4,1).Value="Netscape"
MyExcelChart.ActiveSheet.Cells(5,1).Value="Other"
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
' Select the contents that need to be in the chart
MyExcelChart.ActiveSheet.Range("b2:k5").Select
' Add the chart
MyExcelChart.Charts.Add
' Format the chart, set type of chart, shape of the bars, show title, get the data for the chart, show
datatable, show legend
MyExcelChart.activechart.ChartType = 97
MyExcelChart.activechart.BarShape =3
MyExcelChart.activechart.HasTitle = True
MyExcelChart.activechart.ChartTitle.Text = "Visitors log for each week shown in browsers percentage"
MyExcelChart.activechart.SetSourceData MyExcelChart.Sheets("Sheet1").Range("A1:k5"),1
MyExcelChart.activechart.Location 1
MyExcelChart.activechart.HasDataTable = True
MyExcelChart.activechart.DataTable.ShowLegendKey = True
本文由 点击设计 http://www.djasp.Net 收集整理。谢绝无聊之人转载!
' Save the the excelsheet to excelface
MyExcelChart.SaveAs "c:chart.xls"
%>
本文由 点击设计 http://www.djasp.Net 收集整理。谢绝无聊之人转载!
Now lets complete the HTML tags.
请勿盗版 ★点击设计★ http://www.djasp.Net 网站上的内容,谢谢合作!
<HTML>
<HEAD>
<TITLE>MyExcelChart</TITLE>
</HEAD>
<BODY>
</BODY>
</HTML>
盗版它人网站的内容可耻,您查看的内容来源于★点击设计★www.djasp.Net
This completes yer ASP page, look below for the complete code of myexcelchart.asp
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
<%@ LANGUAGE="VBSCRIPT" %>
<%
' Create Object
Set MyExcelChart = CreateObject("Excel.Sheet")
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
' show or dont show excel to user, TRUE or FALSE
MyExcelChart.Application.Visible = True
本文由 点击设计 http://www.djasp.Net 收集整理。谢绝无聊之人转载!
' populate the cells
MyExcelChart.ActiveSheet.Range("B2:k2").Value = Array
("Week1", "Week2", "Week3", "Week4", "Week5", "Week6", "Week7", "Week8", "Week9", "Week10")
MyExcelChart.ActiveSheet.Range("B3:k3").Value = Array
("67", "87", "5", "9", "7", "45", "45", "54", "54", "10")
MyExcelChart.ActiveSheet.Range("B4:k4").Value = Array
("10", "10", "8", "27", "33", "37", "50", "54", "10", "10")
MyExcelChart.ActiveSheet.Range("B5:k5").Value = Array
("23", "3", "86", "64", "60", "18", "5", "1", "36", "80")
MyExcelChart.ActiveSheet.Cells(3,1).Value="Internet Explorer"
MyExcelChart.ActiveSheet.Cells(4,1).Value="Netscape"
MyExcelChart.ActiveSheet.Cells(5,1).Value="Other"
★点击设计★ http://www.djasp.Net 全力打造WEB技术站点,欢迎大家访问!
' Select the contents that need to be in the chart
MyExcelChart.ActiveSheet.Range("b2:k5").Select
' Add the chart
MyExcelChart.Charts.Add
' Format the chart, set type of chart, shape of the bars, show title, get the data for the chart, show
datatable, show legend
MyExcelChart.activechart.ChartType = 97
MyExcelChart.activechart.BarShape =3
MyExcelChart.activechart.HasTitle = True
MyExcelChart.activechart.ChartTitle.Text = "Visitors log for each week shown in browsers percentage"
MyExcelChart.activechart.SetSourceData MyExcelChart.Sheets("Sheet1").Range("A1:k5"),1
MyExcelChart.activechart.Location 1
MyExcelChart.activechart.HasDataTable = True
MyExcelChart.activechart.DataTable.ShowLegendKey = True
本文由 点击设计 http://www.djasp.Net 收集整理。谢绝无聊之人转载!
' Save the the excelsheet to chart.xls
MyExcelChart.SaveAs "c:chart.xls"
请勿盗版 ★点击设计★ http://www.djasp.Net 网站上的内容,谢谢合作!
%>
<HTML>
<HEAD>
<TITLE>MyExcelChart</TITLE>
</HEAD>
<BODY>
</BODY>
</HTML>
=======================================================
了解更多请访问:http://www.ndfweb.cn/news-493.html
7.asp实现在web中显示电子表格数据(一)
显示数据表格的应用
在用ASP语言开发的Web数据库应用程序中,ADO (ActiveX Data Objects) 已经成为非常流行的工具,而且对于真正的关系型数据库,比如Oracle、SQL Server,它都不会有局限性。 ADO能够存取多种不同的数据格式,MS Excel电子数据表格就是其中之一。
请勿盗版 ★点击设计★ http://www.djasp.Net 网站上的内容,谢谢合作!
关于这个应用
★点击设计★ http://www.djasp.Net 全力打造WEB技术站点,欢迎大家访问!
可供下载的例程代码中包括一个ASP文件ReadX1.asp,一个Excel文件TheWorkbook.xls。你也可以另外加入一些电子数据表文件。
★点击设计★ http://www.djasp.Net 专业的WEB编程资讯技术站点,欢迎访问!
执行ReadXl.asp页面,将显示出可用的电子数据表文件列表。选择好一个文件,并提交表单后,你将会看到:
★点击设计★ http://www.djasp.Net 专业的WEB编程资讯技术站点,欢迎访问!
一个下拉菜单,其中是工作表名称
一个下拉菜单,其中是命名的范围
一个单元格范围输入框
第一个工作表的全部内容
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
可以选择工作簿文件中的另外一个工作表,或者输入符合Excel格式的单元格范围数值,比如:D20:E21 或者 Sheet3!F12:J22。注意:在ADO和ODBC驱动程序中,要用$符合替换分界符号!。
本文由 ★点击设计★ http://www.djasp.Net 收集整理。谢绝无聊之人转载!
实现步骤
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
现在对这个应用程序已经有了初步的认识,下面开始讨论ASP代码,看看如何读取电子数据表的数据,如何找到电子数据簿
(workbook)文件中可用的电子数据表(worksheet)和范围,并看看实现文件列表选择的技术。这里假设你已经熟悉了编写HTML表单的技术,所以对此不做详细介绍。
★点击设计★ http://www.djasp.Net 全力打造WEB技术站点,欢迎大家访问!
基本条件
★点击设计★ http://www.djasp.Net 专业的WEB编程资讯技术站点,欢迎访问!
下面将涉及到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工具包进行安装。
★点击设计★ http://www.djasp.Net 全力打造WEB技术站点,欢迎大家访问!
实现“文件列表选择”使用到了内建的VBScript脚本对象,相关文档可以查看http://YourServer/IisHelp/vbscript/htm/vbstoc.htm,如果想查看最新的文档,请访问http://msdn.microsoft.com/scripting
(版本5)。当然,在服务器端和客户端,你都不需要安装MS Excel。
盗版它人网站的内容可耻,您查看的内容来源于★点击设计★www.djasp.Net
读取电子数据表(Worksheet)数据
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
通过ADO读取电子数据表与读取数据库表的方法基本是一样的。从下图可以看到,电子数据表的行被称作记录Records,列被称作字段Fields。电子数据表或者单元格的范围可以被看成表Tables,并按照记录集recordsets进行存取。
本文由 ★点击设计★ http://www.djasp.Net 收集整理。谢绝无聊之人转载!
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 >
本文由 点击设计 http://www.djasp.Net 收集整理。谢绝无聊之人转载!
执行下面的步骤,从数据库表中读取数据并显示:
请勿盗版 ★点击设计★ http://www.djasp.Net 网站上的内容,谢谢合作!
连接数据库(同样:打开数据簿文件)
读取记录集recordset(同样:读取一定范围的单元格)
循环每一个记录(同样:每一行),经过格式化,显示
建立ADO连接
盗版它人网站的内容可耻,您查看的内容来源于★点击设计★www.djasp.Net
在连接数据库或者打开文件前,需要了解一些信息。其中只要是设置名叫DSN的ODBC驱动,但为每一个数据表都建立这样的ODBC驱动,是非常麻烦的,因为这需要在服务器的控制台上通过“控制面板/ODBC设置”手工完成。
请勿盗版 ★点击设计★ http://www.djasp.Net 网站上的内容,谢谢合作!
幸好,ASP提供了替代DSN的其他方法,它可以非常容易地在运行时建立连接。比如,字符串“DRIVER={Microsoft Excel Driver?*.xls)};ReadOnly=1;DBQ=C:dirfile.xls",表示了替代DSN打开文件c:dirfile.xls,因此通过这种方法仅仅需要提供给ASP程序一个文件名即可。执行下面的代码,将从表单中读取文件名,然后转换为全路径,接着生成连接字符串,最后建立并打开这个连接。
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
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。
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
读取记录集
本文由 ★点击设计★ http://www.djasp.Net 收集整理。谢绝无聊之人转载!
连接上电子数据簿文件后,读取一定范围的单元格数据就很简单了。尽管不是必须的,但还是建议:用符合“[” 和 “]”包含住单元格的范围定义。只所以这么做,是以防在数据库的操作中产生非法的符合。
盗版它人网站的内容可耻,您查看的内容来源于★点击设计★www.djasp.Net
vXlRange = Request("XlRange")
Set oRs = oConn.Execute("[" & vXlRange & "]")
本文由 点击设计 http://www.djasp.Net 收集整理。谢绝无聊之人转载!
执行上面的语句,将返回记录集对象,其中包括范围内单元格的所有可用信息, 记录集的数值和描述数据的元数据。
在用ASP语言开发的Web数据库应用程序中,ADO (ActiveX Data Objects) 已经成为非常流行的工具,而且对于真正的关系型数据库,比如Oracle、SQL Server,它都不会有局限性。 ADO能够存取多种不同的数据格式,MS Excel电子数据表格就是其中之一。
请勿盗版 ★点击设计★ http://www.djasp.Net 网站上的内容,谢谢合作!
关于这个应用
★点击设计★ http://www.djasp.Net 全力打造WEB技术站点,欢迎大家访问!
可供下载的例程代码中包括一个ASP文件ReadX1.asp,一个Excel文件TheWorkbook.xls。你也可以另外加入一些电子数据表文件。
★点击设计★ http://www.djasp.Net 专业的WEB编程资讯技术站点,欢迎访问!
执行ReadXl.asp页面,将显示出可用的电子数据表文件列表。选择好一个文件,并提交表单后,你将会看到:
★点击设计★ http://www.djasp.Net 专业的WEB编程资讯技术站点,欢迎访问!
一个下拉菜单,其中是工作表名称
一个下拉菜单,其中是命名的范围
一个单元格范围输入框
第一个工作表的全部内容
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
可以选择工作簿文件中的另外一个工作表,或者输入符合Excel格式的单元格范围数值,比如:D20:E21 或者 Sheet3!F12:J22。注意:在ADO和ODBC驱动程序中,要用$符合替换分界符号!。
本文由 ★点击设计★ http://www.djasp.Net 收集整理。谢绝无聊之人转载!
实现步骤
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
现在对这个应用程序已经有了初步的认识,下面开始讨论ASP代码,看看如何读取电子数据表的数据,如何找到电子数据簿
(workbook)文件中可用的电子数据表(worksheet)和范围,并看看实现文件列表选择的技术。这里假设你已经熟悉了编写HTML表单的技术,所以对此不做详细介绍。
★点击设计★ http://www.djasp.Net 全力打造WEB技术站点,欢迎大家访问!
基本条件
★点击设计★ http://www.djasp.Net 专业的WEB编程资讯技术站点,欢迎访问!
下面将涉及到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工具包进行安装。
★点击设计★ http://www.djasp.Net 全力打造WEB技术站点,欢迎大家访问!
实现“文件列表选择”使用到了内建的VBScript脚本对象,相关文档可以查看http://YourServer/IisHelp/vbscript/htm/vbstoc.htm,如果想查看最新的文档,请访问http://msdn.microsoft.com/scripting
(版本5)。当然,在服务器端和客户端,你都不需要安装MS Excel。
盗版它人网站的内容可耻,您查看的内容来源于★点击设计★www.djasp.Net
读取电子数据表(Worksheet)数据
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
通过ADO读取电子数据表与读取数据库表的方法基本是一样的。从下图可以看到,电子数据表的行被称作记录Records,列被称作字段Fields。电子数据表或者单元格的范围可以被看成表Tables,并按照记录集recordsets进行存取。
本文由 ★点击设计★ http://www.djasp.Net 收集整理。谢绝无聊之人转载!
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 >
本文由 点击设计 http://www.djasp.Net 收集整理。谢绝无聊之人转载!
执行下面的步骤,从数据库表中读取数据并显示:
请勿盗版 ★点击设计★ http://www.djasp.Net 网站上的内容,谢谢合作!
连接数据库(同样:打开数据簿文件)
读取记录集recordset(同样:读取一定范围的单元格)
循环每一个记录(同样:每一行),经过格式化,显示
建立ADO连接
盗版它人网站的内容可耻,您查看的内容来源于★点击设计★www.djasp.Net
在连接数据库或者打开文件前,需要了解一些信息。其中只要是设置名叫DSN的ODBC驱动,但为每一个数据表都建立这样的ODBC驱动,是非常麻烦的,因为这需要在服务器的控制台上通过“控制面板/ODBC设置”手工完成。
请勿盗版 ★点击设计★ http://www.djasp.Net 网站上的内容,谢谢合作!
幸好,ASP提供了替代DSN的其他方法,它可以非常容易地在运行时建立连接。比如,字符串“DRIVER={Microsoft Excel Driver?*.xls)};ReadOnly=1;DBQ=C:dirfile.xls",表示了替代DSN打开文件c:dirfile.xls,因此通过这种方法仅仅需要提供给ASP程序一个文件名即可。执行下面的代码,将从表单中读取文件名,然后转换为全路径,接着生成连接字符串,最后建立并打开这个连接。
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
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。
此内容来源于 ★点击设计★ http://www.djasp.Net 网页编程资讯官方网站!
读取记录集
本文由 ★点击设计★ http://www.djasp.Net 收集整理。谢绝无聊之人转载!
连接上电子数据簿文件后,读取一定范围的单元格数据就很简单了。尽管不是必须的,但还是建议:用符合“[” 和 “]”包含住单元格的范围定义。只所以这么做,是以防在数据库的操作中产生非法的符合。
盗版它人网站的内容可耻,您查看的内容来源于★点击设计★www.djasp.Net
vXlRange = Request("XlRange")
Set oRs = oConn.Execute("[" & vXlRange & "]")
本文由 点击设计 http://www.djasp.Net 收集整理。谢绝无聊之人转载!
执行上面的语句,将返回记录集对象,其中包括范围内单元格的所有可用信息, 记录集的数值和描述数据的元数据。