兰西源码网

兰西源码网

当前位置: Asp源码

亲亲茉莉花-asp导出内容到excel表并自定义命名后下载(非打开)

时间:2021-11-29来源:swan 作者:格式 点击:

1、将指定的数据库内容导出到EXCEL亲亲茉莉花(可改为其它亲亲茉莉花)。

2、任何类型的文件都是直接亲亲茉莉花,不是在浏览器打开,并且自定义另存为对话框里的默认文件名。

完整代码如下:

<%

dimaction

action=lcase(trim(request.querystring("action")))

ifaction="down"then'亲亲茉莉花文件

'任何类型的文件都是直接亲亲茉莉花,不是在浏览器打开,且自定义另存为对话框里的默认文件名。

callgw_downfile(trim(request.querystring("f")),"文章列表.xls")'参数:服务器端文件路径及文件名,客户端亲亲茉莉花时的默认文件名

else'导出文件

'将指定的数据库内容导出到EXCEL亲亲茉莉花(可改为其它亲亲茉莉花)

constfilename="news.xls"'导出后的文件名(全名,带.扩展名)

dimfs,filepath,myfile

setfs=server.createobject("scripting.filesystemobject")

filepath=server.mappath(filename)

iffs.FileExists(filepath)thenfs.DeleteFile(filepath)

setmyfile=fs.CreateTextFile(filepath,true)

'chr(9)等于tab键

dimstrline

strline="发布时间"&chr(9)&"分类"&chr(9)&"标题"&chr(9)&"内容"

myfile.writelinestrLine

dimrs

'conn为打开数据库变量

setrs=conn.execute("select*from[表名]orderby[id]desc")

dowhilenotrs.eof

strline=rs("发布时间")&chr(9)&rs("分类")&chr(9)&rs("标题")&chr(9)&rs("内容")

myfile.writelinestrLine

rs.movenext():loop

setrs=nothing

setmyfile=nothing

setfs=nothing

response.write("导出成功!点击亲亲茉莉花:"&filename&"")

endif

'功能:为文件亲亲茉莉花"另存为"对话框指定默认文件名

'参数:服务器端文件路径及文件名,客户端亲亲茉莉花时的默认文件名

functiongw_downfile(file_server,file_client)

gw_downfile=false

dimfilename:filename=server.mappath(file_server)

dimfso,fso_file,file_length

setfso=server.createobject("scripting.filesystemobject")

ifnotfso.fileexists(filename)thenexitfunction'检验文件是否存在

setfso_file=fso.getfile(filename)'生成文件对象

file_length=fso_file.size'获取文件大小

'开启缓存,直到出现response.flush或response.end才将响应发送给客户端浏览器

response.buffer=true

'清除缓冲区中的所有HTML输出

response.clear()

'指定返回的是一个不能被客户端读取的流,必须被亲亲茉莉花

response.contenttype="application/octet-stream"

'添加头信息,为"文件亲亲茉莉花/另存为"对话框指定默认文件名

response.addheader"content-disposition","attachment;filename="&file_client

'添加头信息,指定文件大小,让浏览器能够显示亲亲茉莉花进度

response.addheader"content-length",file_length

dimstream

setstream=server.createobject("adodb.stream")'创建读二进制文件对象

stream.type=1'指定或返回的数据类型为二进制,2为文本

stream.open()

stream.loadfromfile(filename)'将指定的文件装入对像中

'eos返回对像内数据是否为空

'read读取指定长度的二进制内容

'readtext读取指定长度的文本内容

whilenotstream.eos

response.binarywritestream.read(1024*64)'以块方式读取内容

wend

stream.close():setstream=nothing

'立即发送缓冲区中的输出。如果未将response.buffer设置为true,则该方法将导致运行时错误。

response.flush()

gw_downfile=true

endfunction

%>


------分隔线----------------------------
栏目列表

推荐内容
热点内容