asp中把数据导出为excel的2种方法
我们在做项目的时候经常要将数据库的数据导出到excel中,很多asp用户并不知道怎么写。
这里明凯总结了两种方法来导出excel,希望能帮到大家。
方法一:用excel组件
<% setrs=server.createobject("adodb.recordset") sql="select*frommkusers" rs.opensql,objconn,1,1 SetExcelApp=CreateObject("Excel.Application") ExcelApp.Application.Visible=True SetExcelBook=ExcelApp.Workbooks.Add ExcelBook.WorkSheets(1).cells(1,1).value="用户表" ExcelBook.WorkSheets(1).cells(2,1).value="用户编号" ExcelBook.WorkSheets(1).cells(2,2).value="登陆名" ExcelBook.WorkSheets(1).cells(2,3).value="真实姓名" ExcelBook.WorkSheets(1).cells(2,4).value="密码" cnt=3 dowhilenotrs.eof ExcelBook.WorkSheets(1).cells(cnt,1).value=rs("provinceid") ExcelBook.WorkSheets(1).cells(cnt,2).value=rs("province") ExcelBook.WorkSheets(1).cells(cnt,3).value=rs("flag") ExcelBook.WorkSheets(1).cells(cnt,4).value=rs("id") rs.movenext cnt=cint(cnt)+1 loop Excelbook.SaveAs"d:\yourfile.xls"'这个是数据导出完毕以后在D盘存成文件 ExcelApp.Application.Quit'导出以后退出Excel SetExcelApp=Nothing'注销Excel对象 %><% setrs=server.createobject("adodb.recordset") sql="select*frommkusers" rs.opensql,objconn,1,1 SetExcelApp=CreateObject("Excel.Application") ExcelApp.Application.Visible=True SetExcelBook=ExcelApp.Workbooks.Add ExcelBook.WorkSheets(1).cells(1,1).value="用户表" ExcelBook.WorkSheets(1).cells(2,1).value="用户编号" ExcelBook.WorkSheets(1).cells(2,2).value="登陆名" ExcelBook.WorkSheets(1).cells(2,3).value="真实姓名" ExcelBook.WorkSheets(1).cells(2,4).value="密码" cnt=3 dowhilenotrs.eof ExcelBook.WorkSheets(1).cells(cnt,1).value=rs("provinceid") ExcelBook.WorkSheets(1).cells(cnt,2).value=rs("province") ExcelBook.WorkSheets(1).cells(cnt,3).value=rs("flag") ExcelBook.WorkSheets(1).cells(cnt,4).value=rs("id") rs.movenext cnt=cint(cnt)+1 loop Excelbook.SaveAs"d:\yourfile.xls"'这个是数据导出完毕以后在D盘存成文件 ExcelApp.Application.Quit'导出以后退出Excel SetExcelApp=Nothing'注销Excel对象 %>
方法二:使用文件组件
<% dims,sql,filename,fs,myfile,x Setfs=server.CreateObject("scripting.filesystemobject") '--假设你想让生成的EXCEL文件做如下的存放 filename=Server.MapPath("order.xls") '--如果原来的EXCEL文件存在的话删除它 iffs.FileExists(filename)then fs.DeleteFile(filename) endif '--创建EXCEL文件 setmyfile=fs.CreateTextFile(filename,true) StartTime=Request("StartTime") EndTime=Request("EndTime") StartEndTime="AddTimebetween#"&StartTime&"00:00:00#and#"&EndTime&"23:59:59#" strSql="select*frommksuers" SetrstData=conn.execute(strSql) ifnotrstData.EOFandnotrstData.BOFthen dimtrLine,responsestr strLine="" ForeachxinrstData.fields strLine=strLine&x.name&chr(9) Next '--将表的列名先写入EXCEL myfile.writelinestrLine DowhileNotrstData.EOF strLine="" foreachxinrstData.Fields strLine=strLine&x.value&chr(9) next myfile.writelinestrLine rstData.MoveNext loop endif Response.Write"生成EXCEL文件成功,点击<ahref="/"rel="externalnofollow"order.xls""target=""_blank"">下载!" rstData.Close setrstData=nothing Conn.Close SetConn=nothing %>
可以看出,第一种方法是直接导出的是excel文件,而第二张方法是到处的是文本文件,只不过后缀名改成了xls。
然后看起来就是excel了。
经过对比第一种方法的效率没有第二种方法的效率高,而且也不好控制。
推荐大家使用第二种写文件的方法来进行excel操作。