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。 |