function OutputBookInfo
	    set conn=server.CreateObject("AdoDB.Connection") '建立连接
	set rs=server.CreateObject("AdoDB.RecordSet")    '创建记录集
	connStr="provider=Microsoft.Jet.oledb.4.0;Data source=" & server.MapPath("database/jsjbook.xls") & _
	";Extended Properties=""Excel 8.0;Hdr=Yes"""
	    conn.open connstr                            '打开连接
	    sqlStr="select * from [jsjbook$]"
	    Rs.open sqlStr,conn,2,2                          '打开记录集
	                    '输出表头
	    response.Write("<table><tr>")
	for i=0 to rs.fields.count-1
	  response.write("<td>" & rs(i).name &"</td>")
	next
	response.write("</tr>")
	do while not rs.eof                         '输出所有记录
	     response.Write("<tr>")
	     for i=0 to rs.fields.count-1
	         response.write("<td>" & rs(i).value &"</td>")
	     next
	     response.write("</tr>")
	     rs.movenext
	loop
	response.Write("</table>")
	set conn=nothing
	set rs=nothing
	end function
二、ASP生成上例中工作表Jsjbook中清华大学促版社的图书:(函数形势)
	Function ExcelLink
	    dim aa()
	    set objExcelApp=server.CreateObject("Excel.Application")'Create Excel Object
	objExcelApp.DisplayAlerts=False
	objExcelApp.Application.visible=False
	objExcelApp.WorkBooks.add                               'Create Excel File
	set objExcelBook=objExcelApp.ActiveWorkBook
	set objExcelSheets=ObjExcelBook.WorkSheets
	set objExcelSheet=objExcelBook.sheets(1)
	'将清华大学出版社的书籍写道Excel 文件中
	set conn=server.CreateObject("AdoDB.Connection") '建立连接
	set rs=server.CreateObject("AdoDB.RecordSet")    '创建记录集
	connStr="provider=Microsoft.Jet.oledb.4.0;Data source=" & server.MapPath("database/jsjbook.xls") & _
	";Extended Properties=""Excel 8.0;Hdr=Yes"""
	    conn.open connstr                            '打开连接
	    sqlStr="select 书名 from [jsjbook$] where trim(出版社)='清华大学出版社'"
	rs.open sqlStr,conn,2,2
	
	redim aa(rs.recordcount)
	index=1
	do while not rs.eof
	     redim preserve aa(index)
	     aa(index-1)=rs(0).value
	  response.Write(aa(index-1) &"<br>")
	  index=index+1
	  rs.movenext
	loop
	num=ubound(aa)
	rng="A1:A"& trim(Cstr(num))
	objExcelSheet.range(rng).value=aa                         '酌情修改
	strAddr=server.MapPath(".")                               'save as excel file
	objExcelBook.saveas straddr & "Table.xls"
	response.Write(straddr & "Table.xls" & rng)
	objExcelapp.quit
	set objExcelApp=nothing
	set conn=nothing
	set rs=nothing
	End Function
意义不大:
“读”,使用ADO与读其它数据库没啥区别;
“写”根本可以不建立“excel.application”,直接使用FSO对象,写为后缀名为“csv”的逗号分隔的纯文本,使用这个方法绝对比楼主给出的使用“excel.application”对象的方法更节约系统资源,要知道你是在服务器端启用“excel.application”对象,如果访问量大了,每次都新建一个“excel.application”,服务器吃得消?
你说得对,在服务器端还没听说哪位使用Excel作为后台的数据库。而且有面的创建Excel文件实在是占用他多的系统资源。我写的完整系统是供一个局域网内的用户使用。对于上面的创建文件操作时不提供的。原来是采用MDB文件的,后来因总来新书,管理员不愿意在网页上录入数据,就在Exvel中录入,每次都得我在京数据倒入MDB文件中,太烦了,就开发了Excel作为后台数据库的系统。
就技术而言,同意楼上所言。
| 
				 三楼的七叶一枝梅说得对,我建立后写不进去,且在系统中有10个EXCELEXE在运行。我本人刚开始学ASP,并且刚用ASP+SQL+SERVER2000,一台破电脑做了一个网页,是内部使用的,内部部门可以通过网上上报资料,但上报后需要各项汇及打印。毕竟SQL没有EXCEL表格功能强大,我想通过ASP输出到EXCEL再进行二次整理,请大侠给个好建议及方法。谢谢!!!  | 
		
| 
				--  作者:七叶一枝梅 -- 发布时间:2005-7-29 8:48:22 -- 楼上,没有必要在ASP中实现输出到Excel吧?如果你有管理员权限的话,你可以在本地直接进行数据连接,然后将数据读出为“csv”格式文本,不是就可以用excel编辑了吗? 如果你实在要想用脚本实现的话,建议你在本地使用VBS脚本,而不是使用ASP。  |