asp页面表格用excel输出,点了没发应?请高手指点
<div>
<table width="100%" id = "tab" border="1" cellpadding="1" cellspacing="1" bordercolor="#666666">
<tr>
<th>类型</th>
<th>时间</th>
<th>规格</th>
<th>收入</th>
<th>支出</th>
<th>结存</th>
<th>厂家</th>
<th>保修期</th>
<th>单价</th>
<th>经手人</th>
<th>单位</th>
<th>核对</th>
<th>备注</th>
</tr>
<%
while not oConn.eof
%>
<tr>
<td><%=oConn("类型")%></td>
<td><%=oConn("进出货时间")%></td>
<td><%=oConn("型号规格")%></td>
<td><%=oConn("收入数量")%></td>
<td><%=oConn("支出数量")%></td>
<td><%=oConn("结存数量")%></td>
<td><%=oConn("进货厂家")%></td>
<td><%=oConn("保修期")%></td>
<td><%=oConn("单价")%></td>
<td><%=oConn("经手人")%></td>
<td><%=oConn("单位")%></td>
<td><%=oConn("核对")%></td>
<td><%=oConn("备注")%></td>
</tr>
<%
oConn.movenext
wend
%>
</table>
</div>
<input type="button" name="out_excel" onclick="AutomateExcel();" value="导出到excel" class="notPrint">
<%
end if
soConn.close
set soConn=nothing
%>
<SCRIPT LANGUAGE="javascript">
<!--
function AutomateExcel()
{
// Start Excel and get Application object.
var oXL = new ActiveXObject("Excel.Application");
// Get a new workbook.
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var table = document.all.tab;
var hang = table.rows.length;
response.Write("table")
var lie = table.rows(0).cells.length;
// Add table headers going cell by cell.
for (i=0;i<hang;i++)
{
for (j=0;j<lie;j++)
{
oSheet.Cells(i+1,j+1).value = table.rows(i).cells(j).innerText;
}
}
oXL.Visible = true;
oXL.UserControl = true;
}
//-->
</SCRIPT>
问题点数:30、回复次数:8Top
1 楼syre(神仙)回复于 2004-12-01 12:57:29 得分 3
为什么不直接指定输出类型为excel?????Top
2 楼Lmir(小豹)回复于 2004-12-01 13:20:10 得分 0
那样可以,我试过,但我是想先将它在页面显示出来,如果想导出到excel文件打印的话,就点那个按钮就行了Top
3 楼hqcsx(蓝色心灵)回复于 2004-12-01 14:14:47 得分 27
<!--#include file="../conn/conn.asp"-->
<%
'导出xml,csv,htm文件DEMO
'用法:ExportDB.asp?t=文件类型&sql=sql语句
'文件类型可以是htm,csv,xml,默认是htm
'http://www.51windows.Net
'tablename = "htm"
Dim shijian,dingdan
shijian = now()
dingdan = year(shijian)&month(shijian)&day(shijian)&hour(shijian)&minute(shijian)&second(shijian)
dim tablename
sql2 = request("sql")
tablename = request("tablename")
if tablename = "" then
tablename = "数据导出结果"&dingdan
else
tablename = tablename&dingdan
end if
sql = replace(sql2,";","")
filetype = lcase(request("t"))
dim dbid,IndexPageName
function HTMLEncode(fString)
if not isnull(fString) then
fString = Server.HTMLEncode(fString)
fString = Replace(fString, CHR(10) & CHR(10), "</P><P> ")
fString = Replace(fString, CHR(10), "<BR> ")
fString = Replace(fString, CHR(9), " ")
HTMLEncode = fString
end if
end function
function Myreplace(str)
if not isnull(str) then
fString = Replace(fString,"""", """""")
Myreplace = str
else
Myreplace = ""
end if
end function
dim def_export_val
def_export_sep = ","
def_export_val = """"
if lcase(left(sql,6))<>"select" then
Response.write "出错了。。。"
Response.end
end if
Set rs = Conn.Execute(sql)
if filetype="xml" then
Response.contenttype="text/xml"
Response.Charset = "gb2312"
Response.AddHeader "Content-Disposition", "attachment;filename="&tablename&".xml"
Response.write "<?xml version=""1.0"" encoding=""gb2312""?>"
Response.write vbnewline&"<root>"
strLine=""
dim thefield(50)
i = 0
For each x in rs.fields
thefield(i)=x.name
i=i+1
Next
While rs.EOF =false
strLine= vbnewline&chr(9)&"<row>"
k=0
For each x in rs.fields
strLine= strLine & vbnewline&chr(9)&chr(9)&"<"&thefield(k)&">"
if instr(x.value,"<") or instr(x.value,">") or len(x.value)>255 then
strLine= strLine &"<![CDATA["& x.value &"]]>"
else
strLine= strLine & x.value
end if
strLine= strLine &"</"&thefield(k)&">"
k=k+1
Next
rs.MoveNext
Response.write strLine &vbnewline& chr(9)&"</row>"
Wend
Response.write vbnewline&"</root>"
elseif filetype="csv" then
'Response.contenttype="application/vnd.ms-excel"
Response.contenttype="text/csv"
Response.AddHeader "Content-Disposition", "attachment;filename="&tablename&".csv"
strLine=""
strLine="""会员帐号"",""高级会员"",""真实姓名"",""电子邮件"",""联系电话"",""联系传真"",""移动电话"",""邮政编码"",""联系地址"",""公司名称"",""密码提示问题"",""密码提示答案"",""登录次数"",""最后登录时间"",""注册时间"","
For each x in rs.fields
'strLine= strLine & def_export_val & def_export_val & def_export_sep
Next
Response.write strLine & vbnewline
While rs.EOF =false
strLine= ""
For each x in rs.fields
strLine= strLine & def_export_val & trim(Myreplace(x.value)) & def_export_val & def_export_sep
Next
rs.MoveNext
Response.write strLine & vbnewline
Wend
else
if filetype="htm" then'弹出下载html的对话框
Response.contenttype="application/ms-download"
Response.AddHeader "Content-Disposition", "attachment;filename="&tablename&".htm"
end if
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<!--META NAME="Author" CONTENT="51windows,海娃,haiwa">
<META NAME="Description" CONTENT="Power by 51windows.Net"-->
<title>导出数据。。</title>
<style>
<!--
body { font-family: Verdana; font-size: 11px }
th { font-family: Verdana; font-size: 11px;padding:3px;color:#FFFFFF;background-color:#999999;}
td { font-family: Verdana; font-size: 11px;padding:3px;background-color:#EFEFEF;}
-->
</style>
</head>
<BODY style="overflow:auto;" topmargin=2 bgcolor=buttonface oncontextmenu=self.event.returnValue=false >
<div align="center">
<table border="0" cellpadding="0" cellspacing="1" bgcolor="#000000">
<tr>
<th align="center">会员帐号</th>
<th align="center">高级会员</th>
<th align="center">真实姓名</th>
<th align="center">电子邮件</th>
<th align="center">联系电话</th>
<th align="center">联系传真</th>
<th align="center">移动电话</th>
<th align="center">邮政编码</th>
<th align="center">联系地址</th>
<th align="center">公司名称</th>
<th align="center">密码提示问题</th>
<th align="center">密码提示答案</th>
<th align="center">登录次数</th>
<th align="center">最后登录时间</th>
<th align="center">注册时间</th>
</tr>
<%
i=0
For each x in rs.fields
strLine= strLine &chr(9)&chr(9)& vbnewline
Next
Response.write strLine&chr(9)& vbnewline & vbnewline
While rs.EOF =false
i=i+1
Response.write chr(9)&"<tr>"& vbnewline
strLine= ""
For each x in rs.fields
strLine= strLine &chr(9)&chr(9)&"<td>"& HTMLEncode(x.value) &"</td>"& vbnewline
Next
rs.MoveNext
Response.write strLine
Response.write chr(9)&"</tr>"& vbnewline & vbnewline
Wend
Response.write "</table>"& vbnewline
if filetype<>"htm" and filetype<>"xls" and filetype<>"txt" then
Response.write "<p style='line-height:160%;'>"&i&"条记录 <a href='?tablename="&request("tablename")&"&t=htm&sql="&server.urlencode(sql2)&"'>导出HTML</a>|<a href='?tablename="&request("tablename")&"&t=csv&sql="&server.urlencode(sql2)&"'>导出EXCEL</a>|<a href='?tablename="&request("tablename")&"&t=xml&sql="&server.urlencode(sql2)&"'>导出XML</a>"& vbnewline
end if
'Response.write "<p>Power by <A HREF=""http://www.51windows.Net"" target=""_blank"">51windows.Net</A>"& vbnewline
Response.write "</div>"& vbnewline
Response.write "</BODY>"& vbnewline
Response.write "</HTML>"& vbnewline
%>
<%
end if
rs.close
conn.close
Set rs=nothing
Set conn=nothing
%>
**********************************************************************************
<%
member_name = trim(request("member_name"))
member_sex = trim(request("member_sex"))
member_popedom = trim(request("member_popedom"))
sql2 = "select member_name,member_popedom,member_nickname,member_email,member_phone,member_fax,mobile_phone,member_postalcode,member_address,member_company,member_question,member_answer,member_count,now_date,now_first from member where member_id >= 1 "
if member_name <> "" then
sql_member_name = " and member_name like '%"&member_name&"%' "
sql2 = sql2 + sql_member_name
end if
if member_sex <> "" then
sql_member_sex = " and member_sex='"&member_sex&"' "
sql2 = sql2 + sql_member_sex
end if
if member_popedom <> "" then
sql_member_popedom = " and member_popedom = "&member_popedom&" "
sql2 = sql2 + sql_member_popedom
end if
sql2 = sql2 + " order by now_first desc "
%>
<input name="Submit" type="button" class="cabinput" value="导出网页" onClick="window.location.href='ExportDB.asp?t=htm&sql=<% = server.URLEncode(sql2) %>'" >
<input name="Submit" type="button" class="cabinput" value="导出表格" onClick="window.location.href='ExportDB.asp?t=csv&sql=<% = server.URLEncode(sql2) %>'">
Top
4 楼Lmir(小豹)回复于 2004-12-01 14:54:59 得分 0
谢了,先下了试试!Top
5 楼Lmir(小豹)回复于 2004-12-01 15:30:34 得分 0
比较长,代码还要改造一番才能用。
想问问我那段程序到底是哪个地方出了问题?
怎么改啊Top
6 楼iamwaiting1980(我一直在等待)回复于 2004-12-01 15:58:04 得分 0
我也想知道Top
7 楼iamwaiting1980(我一直在等待)回复于 2004-12-01 16:20:23 得分 0
孙晓宁qq21522656 tel:13589357384Top
8 楼iamwaiting1980(我一直在等待)回复于 2004-12-01 16:37:17 得分 0
// Get a new workbook.
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var table = document.all.tab;
var hang = table.rows.length;
response.Write("table")
什么意思?Top




