Asp将查询结果导出到excel里
是Office的OWC版本問題。2000,2002XP,2003各不相同,加入Office的版本檢查即可,完整代碼如下:
<script language="javascript">
function exportExcel(atblData,dirPath)
{
//alert(dirPath);
if (typeof(atblData)=="undefined"||typeof(atblData)=="unknow")
???? {
?????????? alert("沒有數據可以導出!");
?????????? return;
???????? }
var mysheet;
var off2000=false;
var off2002xp=false;
var off2003=false;
?? //office2003
???????? try {
???????????????? mysheet=new ActiveXObject("OWC11.Spreadsheet");
???????????????? off2003=true;
???????? }
???????? catch(e) { }
???????? //office2002-xp
???????? if(!off2003)
???????? {
???????????????? try {
???????????????????????? mysheet=new ActiveXObject("OWC10.Spreadsheet");
???????????????????????? off2002xp=true;
???????????????? }
???????????????? catch(e) {}
???????? }
???????? //office 2000
???????? if(!off2003 && !off2002xp)
???????? {????????
???????????????? try {
?????????????????? mysheet=new ActiveXObject("OWC.Spreadsheet");
?????????????????? off2000=true;
???????????????? }
???????????????? catch(e) {}
???????? }
???????? if(!off2000 && !off2002xp && !off2003 )
???????? {
???????????????? alert( "請確定已安裝Excel2000(或更高版本)的OWC ActiveX控件,并且沒打開同名xls文件");
???????????????? return;
???????? }
with(mysheet)
{
?????????? DataType = "HTMLData";
?????????? HTMLData =atblData.outerHTML;
???????? try{
?????????????????? if(off2000)
?????????????????? {
???????????????????? ActiveSheet.Export(dirPath,0);
???????????????????? alert('導出EXCEL文檔完畢');
?????????????????? }
?????????????????? if(off2002xp)
?????????????????? {
???????????????????? Export(dirPath,0);
???????????????????? alert('導出EXCEL文檔完畢');
?????????????????? }
?????????????????? if(off2003)
?????????????????? {
???????????????????? Export(dirPath,0);
???????????????????? alert('導出EXCEL文檔完畢');
?????????????????? }
?????????????? }
????????????
?????? catch (e)
?????????? {
?????????? alert('導出Excel表失敗,請確定已安裝Excel2000(或更高版本),并且沒打開同名xls文件');
?????????? //alert(Error.description);
?????????? }
}??????
}
</script>
<table id=tblData>
<tr>
?? <td>
</tr>
</table>
<center><input type="button" value="導出Excel文檔" οnclick="exportExcel(tblData,'C://sale.xls')"></center>
.....................................................................
<script for="window" event="onload">
?? window.resizeTo(400,300)
?? </script>
?? <%
?? set conn=Server.CreateObject("adodb.connection")
?? connstr= "driver={SQL Server};server=192.168.100.207;uid=sa;pwd=szweb05;database=shizhu_2009"'//鏈接數據庫
?? conn.open connstr
?? dim rs,sql,filename,fs,myfile,x??
?? Set fs=server.CreateObject("scripting.filesystemobject")??????
?? '--假設你想讓生成的EXCEL文件做如下的存放??????
?? filename=Server.MapPath("FT_User.xls")'/數據表保存的文件名??????
?? '--如果原來的EXCEL文件存在的話刪除它??????
?? if fs.FileExists(filename) then??
?? fs.DeleteFile(filename)??????
?? end if??
?? '--創建EXCEL文件??
?? set myfile=fs.CreateTextFile(filename,true)????
?? '///從數據庫中把你想放到EXCEL中的數據查出來????????????
?? Set rs=Server.CreateObject("ADODB.Recordset")??
?? sql="select * from News"
?? rs.open sql,conn,1,1
?? if not rs.EOF then
?? dim strLine,responsestr??????
?? strLine=""??
?? For each x in rs.fields??
?? strLine=strLine & x.name & chr(9)??
?? Next??
?? '--將表的列名先寫入EXCEL??????
?? myfile.writeline strLine??
?? Do while Not rs.EOF??????
?? strLine=""??
?? for each x in rs.Fields??????
?? strLine=strLine & x.value & chr(9)??????
?? next??
?? '--將表的數據寫入EXCEL??????
?? myfile.writeline strLine??
?? rs.MoveNext??
?? loop??
?? end if??
?? rs.Close??????
?? set rs=nothing
Response.Write "<BR><BR><center><b>導出成功,請選擇繼續操作</b></center>"
response.Write "<table width=90% cellspacing=1 cellpadding=3 align=center>"
Response.Write "<tr align=center> <td>"
response.write ("<font color=green>√</font><a href='FT_User.xls'>下載</a>") & "?? <font color= green>√</font><a href=javascript:window.close()>關閉</a>"
Response.Write "</td></tr></table>"
%>
.........................................................
<%
???????? Response.Buffer = TRUE
????????
???????? Response.ContentType = "application/vnd.ms-excel"
???????? Response.AddHeader "content-disposition", "inline; filename = 用戶信息.xls"
????????
%>??
............................................................
asp導出到excel
--------------------------------------------------------------------------------
在開頭加上這一句
Response.ContentType = "application/vnd.ms-excel"
如果導出結果為空白的,那就去掉它
一下是導出Excel代碼
--------------------------------------------------------------------------------
<%
set rs=server.createobject("adodb.recordset")
sql="select * from provinceinfo where 1=1"
rs.open sql,objconn,1,1
Set ExcelApp =CreateObject("Excel.Application")
ExcelApp.Application.Visible = True
Set ExcelBook = 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
do while not rs.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
Set ExcelApp = Nothing???? '注銷Excel對象
%>
這是讀取Excel表中數據例子
--------------------------------------------------------------------------------
sConn1="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("..")&"/temp/"&sNewFileName & ";Extended Properties=""Excel 8.0;HDR=NO;"""
?????? oxls.Open "Select * FROM [sheet1$]",sConn1,1,3
?????? oxls.movenext
oxls("f11")="1月"
?????? oxls.update
...
?????? oxls.Close
Set oxls=nothing
總結
以上是生活随笔為你收集整理的Asp将查询结果导出到excel里的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP excel导出/导入Access
- 下一篇: ASP导出Excel数据的四种方法