您的位置:首页 > 编程语言 > ASP

Asp将查询结果导出到excel里

2009-12-23 12:47 477 查看
是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文档" onclick="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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: