asp导出为csv格式
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
csv格式由于体积小,便于生成和导出导入,而且跟excel兼容性好,所以很多b/s程序最终导出方案都选择了csv,这个代码就是要实现这个功能的一个小过程。[br][br]strsql 要导出的sql查询语句[br]strfields 字段名称列表,如果为空字符,则使用sql语句中的字段名[br][br]用法示例:[br]strsql=“select * from table1”[br]strsql=“select id,name,age from employees&strfields =编号,姓名,年龄"[br][br]export.asp[br][br]
程序代码 <% [br]response.buffer = true[br]response.addheader "content-disposition","attachment;filename=exportdata.csv;" [br]response.charset = "bg2312" [br]response.contenttype = "application/octet-stream" [br][br]dim dbname,conn[br]dbname="data/epm.mdb" '定义数据库路径及名称[br]set conn = server.createobject("adodb.connection")[br]conn.open "provider=microsoft.jet.oledb.4.0;data source=" & server.mappath(dbname)[br][br]dim strsql,strfields[br]dim rst[br]dim i[br][br]strsql=request("strsql")[br]strsql=replace(strsql,"%","%") '解决%号丢失问题, 参数中把%变成全角的,不然全丢失[br]strsql=replace(strsql,"#","#") '解决#号丢失问题[br]strfields=request("strfields")[br][br]'response.write(strsql &vbcrlf)[br][br]set rst = conn.execute(strsql)[br][br]if rst.eof then [br]response.write("没有可导出数据!")[br]response.end[br]end if [br][br]if len(strfields)>0 then[br]response.write replace(strfields,"id","id") '防止出现sylk文件打开提示[br]else[br]for i =0 to rst.fields.count-1[br]'strfields=strfields &rst.fields(i).name & ","[br]'防止出现sylk文件打开提示[br]'以id(大写)内容开头的文件[br]strfields=strfields & replace(rst.fields(i).name,"id","id") & "," [br]next [br]strfields=left(strfields,len(strfields)-1)[br]response.write(strfields)[br]end if[br][br]response.write(vbcrlf)[br][br]response.write(rst.getstring(,,","))[br][br]%>[br][br]1、如果字段里面带双引号需要用 chr(34) 包括起来[br][br]2、字段里面有html代码的话 需要用replace(str,vbcrlf,"") 替换掉 字段里面 vbcrlf 代码 该文章在 2010/7/22 21:51:06 编辑过 |
关键字查询
相关文章
正在查询... |