asp导出内容到excel表并自定义命名后下载(非打开)
本ASP程序代码实现两个功能:
1、将指定的数据库内容导出到EXCEL表格(可改为其它格式)。
2、任何类型的文件都是直接下载,不是在浏览器打开,并且自定义另存为对话框里的默认文件名。
完整代码如下:
<%
dim action
action=lcase(trim(request.querystring("action")))
if action="down" then '下载文件
'任何类型的文件都是直接下载,不是在浏览器打开,且自定义另存为对话框里的默认文件名。
call gw_downfile(trim(request.querystring("f")),"文章列表.xls") '参数:服务器端文件路径及文件名,客户端下载时的默认文件名
else '导出文件
'将指定的数据库内容导出到EXCEL表格(可改为其它格式)
const filename="news.xls" '导出后的文件名(全名,带.扩展名)
dim fs,filepath,myfile
set fs=server.createobject("scripting.filesystemobject")
filepath=server.mappath(filename)
if fs.FileExists(filepath) then fs.DeleteFile(filepath)
set myfile=fs.CreateTextFile(filepath,true)
'chr(9)等于tab键
dim strline
strline="发布时间" & chr(9) & "分类" & chr(9) & "标题" & chr(9) & "内容"
myfile.writeline strLine
dim rs
'conn为打开数据库变量
set rs=conn.execute("select * from [表名] order by [id] desc")
do while not rs.eof
strline=rs("发布时间") & chr(9) & rs("分类") & chr(9) & rs("标题") & chr(9) & rs("内容")
myfile.writeline strLine
rs.movenext() : loop
set rs=nothing
set myfile=nothing
set fs=nothing
response.write("导出成功!点击下载:<a href='?action=down&f=" & filename & "'>" & filename & "</a>")
end if
'功能:为文件下载"另存为"对话框指定默认文件名
'参数:服务器端文件路径及文件名,客户端下载时的默认文件名
function gw_downfile(file_server,file_client)
gw_downfile=false
dim filename : filename=server.mappath(file_server)
dim fso,fso_file,file_length
set fso=server.createobject("scripting.filesystemobject")
if not fso.fileexists(filename) then exit function '检验文件是否存在
set fso_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
dim stream
set stream=server.createobject("adodb.stream") '创建读二进制文件对象
stream.type=1 '指定或返回的数据类型为二进制,2为文本
stream.open()
stream.loadfromfile(filename) '将指定的文件装入对像中
'eos返回对像内数据是否为空
'read读取指定长度的二进制内容
'readtext读取指定长度的文本内容
while not stream.eos
response.binarywrite stream.read(1024*64) '以块方式读取内容
wend
stream.close() : set stream=nothing
'立即发送缓冲区中的输出。如果未将response.buffer设置为true,则该方法将导致运行时错误。
response.flush()
gw_downfile=true
end function
%>
1、将指定的数据库内容导出到EXCEL表格(可改为其它格式)。
2、任何类型的文件都是直接下载,不是在浏览器打开,并且自定义另存为对话框里的默认文件名。
完整代码如下:
<%
dim action
action=lcase(trim(request.querystring("action")))
if action="down" then '下载文件
'任何类型的文件都是直接下载,不是在浏览器打开,且自定义另存为对话框里的默认文件名。
call gw_downfile(trim(request.querystring("f")),"文章列表.xls") '参数:服务器端文件路径及文件名,客户端下载时的默认文件名
else '导出文件
'将指定的数据库内容导出到EXCEL表格(可改为其它格式)
const filename="news.xls" '导出后的文件名(全名,带.扩展名)
dim fs,filepath,myfile
set fs=server.createobject("scripting.filesystemobject")
filepath=server.mappath(filename)
if fs.FileExists(filepath) then fs.DeleteFile(filepath)
set myfile=fs.CreateTextFile(filepath,true)
'chr(9)等于tab键
dim strline
strline="发布时间" & chr(9) & "分类" & chr(9) & "标题" & chr(9) & "内容"
myfile.writeline strLine
dim rs
'conn为打开数据库变量
set rs=conn.execute("select * from [表名] order by [id] desc")
do while not rs.eof
strline=rs("发布时间") & chr(9) & rs("分类") & chr(9) & rs("标题") & chr(9) & rs("内容")
myfile.writeline strLine
rs.movenext() : loop
set rs=nothing
set myfile=nothing
set fs=nothing
response.write("导出成功!点击下载:<a href='?action=down&f=" & filename & "'>" & filename & "</a>")
end if
'功能:为文件下载"另存为"对话框指定默认文件名
'参数:服务器端文件路径及文件名,客户端下载时的默认文件名
function gw_downfile(file_server,file_client)
gw_downfile=false
dim filename : filename=server.mappath(file_server)
dim fso,fso_file,file_length
set fso=server.createobject("scripting.filesystemobject")
if not fso.fileexists(filename) then exit function '检验文件是否存在
set fso_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
dim stream
set stream=server.createobject("adodb.stream") '创建读二进制文件对象
stream.type=1 '指定或返回的数据类型为二进制,2为文本
stream.open()
stream.loadfromfile(filename) '将指定的文件装入对像中
'eos返回对像内数据是否为空
'read读取指定长度的二进制内容
'readtext读取指定长度的文本内容
while not stream.eos
response.binarywrite stream.read(1024*64) '以块方式读取内容
wend
stream.close() : set stream=nothing
'立即发送缓冲区中的输出。如果未将response.buffer设置为true,则该方法将导致运行时错误。
response.flush()
gw_downfile=true
end function
%>
后一页:'禁止站外提交页面和数据
- 相关阅读
- 旅行社网站模板7
- 求实时获取两个input日期型值的差
- 从百度扣下来的javascript日历
- 深山行者V1.2旅行社网站管理系统
- 利用java客户端静态页面玩分页
- 对MD5加密方式使用者的建议
- CSS选择符详解
- 如何加快网站访问速度
- 共有0条关于《asp导出内容到excel表并自定义命名后下载(非打开)》的评论
- 发表评论
正在加载评论......
返回顶部发表评论
网友评论声明,请自觉遵守互联网相关政策法规。
您发布的评论即表示同意遵守以下条款:
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家、社会、集体和公民的合法权益;
二、不得发布国家法律、法规明令禁止的内容;互相尊重,对自己在本站的言论和行为负责;
三、本站对您所发布内容拥有处置权。
- 更多>>同类信息
- ASP中Utf-8与Gb2312编码转换乱码问题的解决方法页面编码声明
- asp显示随机密码
- 通过阿里云服务接口获得ip地址详细信息
- iis点开后任务栏上有显示,但是窗口看不到的解决办法
- RSA加密解密插件
- 微软Encoder加密解密函数
- 更多>>最新添加文章
- dw里面查找替换使用正则删除sqlserver里面的CONSTRAINT
- Android移动端自动化测试:使用UIAutomatorViewer与Selenium定位元素
- 抖音直播音挂载小雪花 懂车帝小程序
- javascript获取浏览器指纹可以用来做投票
- 火狐Mozilla Firefox出现:无法载入您的Firefox配置文件 它可能已经丢失 或是无法访问 问题解决集合处理办法
- 在Android、iOS、Windows、MacOS中微信小程序的文件存放路径
- python通过代码修改pip下载源让下载库飞起
- python里面requests.post返回的res.text还有其它的吗