我感觉楼主的这个方法就是把cnbruce发的那个ASP模版生成HTML的方法修改了下后缀而以...
就像12#所说...生成的并不是真正意义上的EXCEL或WORD,只是格式差不多HTML而以
我测试过生成EXCEL,通过下面的方法生成EXCEL是空白的....
但是如果我把后缀.xls改成.csv就可以了,目前还没找到原因
复制内容到剪贴板
代码:
<%
On Error Resume Next
dim db_path,conn,connstr
db_path = "data/data.mdb"
Set conn= Server.CreateObject("ADODB.Connection")
connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(db_path)
On Error Resume Next
conn.Open connstr
If Err Then
err.Clear
Set Conn = Nothing
Response.Write "<SCRIPT language=javascript> location.href='error.asp?msg=系统出错,请联系管理员!' </SCRIPT>"
Response.End
End If
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from m_ss",conn,1,1
s=rs("s_main")
all=split(s,"|||")
for i=0 to 20
next
if not (rs.eof And rs.bof) then
dim ttxt,file,filepath,writefile
ttxt="jb.csv" '为要写入的文件取个文件名,后缀可以是txt,xls,这里我用csv,这种文件打开也是excel表
Set file = CreateObject("Scripting.FileSystemObject")
Application.lock
'写入文件的存放路径,一定要开放这个路径下的读写权限
filepath=Server.MapPath(ttxt)
Set Writefile = file.CreateTextFile(filepath,true)
'在表格中写入第一行,字段描述,这个根据你实际的数据表字段来写
Writefile.WriteLine "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK"
do while not rs.eof
Writefile.WriteLine rs("s_id")&","&rs("s_no")&","&rs("s_top")&","&rs("s_title")&","&rs("s_name")&","&rs("s_add")&","&rs("s_ajlx")&","&rs("s_fy1")&","&rs("s_fy2")&","&rs("s_fy3")&","&rs("s_fg1")&","&rs("s_fg2")&","&rs("s_fg3")&","&rs("s_yg")&","&rs("s_bg")&","&all(0)&","&all(1)&","&all(2)&","&all(3)&","&all(4)&","&all(5)&","&all(6)&","&all(7)&","&all(8)&","&all(9)&","&all(10)&","&all(11)&","&all(12)&","&all(13)&","&all(14)&","&all(15)&","&all(16)&","&all(17)&","&all(18)&","&all(19)&","&rs("s_ly")&","&rs("s_bz")&","&rs("s_sfz")&","&rs("s_time")
rs.movenext
loop
'以上三行作用是逐行将数据写入表中
Writefile.close
Application.unlock
rs.close
set rs=nothing
end if
rs.Close
Set rs=nothing
response.write "数据导出成功!"
response.end
%>