凹丫丫网络社区's Archiver

oyaya 发表于 2008-6-17 10:22

导出为CSV格式的ASP处理页面代码

<P>[quote]</P>
<P>参数<BR>strSQL&nbsp;&nbsp;&nbsp;&nbsp; 要导出的SQL查询语句<BR>strFields&nbsp; 字段名称列表,如果为空字符,则使用SQL语句中的字段名</P>
<P>用法示例:<BR>1:export.asp?strSQL=select * from table1<BR>2:export.asp?strSQL=select ID,NAME,AGE FROM EMPLOYEES&amp;strFields =编号,姓名,年龄</P>
<P><BR>export.asp<BR>&lt;% <BR>Response.Buffer = true<BR>Response.AddHeader&nbsp; "Content-Disposition","attachment;filename=exportdata.csv;"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>Response.CharSet&nbsp; =&nbsp; "bg2312"&nbsp;&nbsp;&nbsp; <BR>Response.ContentType&nbsp; =&nbsp; "application/octet-stream" </P>
<P>Dim DBName,Conn<BR>DBName="DATA/EPM.mdb"&nbsp;&nbsp;&nbsp; '定义数据库路径及名称<BR>SET Conn = Server.CreateObject("ADODB.Connection")<BR>Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; Server.MapPath(DBName)</P>
<P>DIM strSQL,strFields<BR>DIM RST<BR>DIM I</P>
<P>strSQL=REQUEST("strSQL")<BR>strSQL=replace(strSQL,"%","%")&nbsp;&nbsp; '解决%号丢失问题,&nbsp;&nbsp;&nbsp; 参数中把%变成全角的,不然全丢失<BR>strSQL=replace(strSQL,"#","#")&nbsp;&nbsp; '解决#号丢失问题<BR>strFields=REQUEST("strFields")</P>
<P>'Response.Write(strSQL &amp;VBCRLF)</P>
<P>SET RST = CONN.EXECUTE(strSQL)</P>
<P>IF RST.EOF THEN <BR>&nbsp;Response.Write("没有可导出数据!")<BR>&nbsp;response.end<BR>END IF </P>
<P>IF LEN(strFields)&gt;0 THEN<BR>&nbsp;Response.Write replace(strFields,"ID","id")&nbsp; '防止出现SYLK文件打开提示<BR>ELSE<BR>&nbsp;FOR I =0 TO RST.FIELDS.COUNT-1<BR>&nbsp;&nbsp;&nbsp;&nbsp; 'strFields=strFields &amp;RST.FIELDS(I).NAME &amp; ","<BR>&nbsp; '防止出现SYLK文件打开提示<BR>&nbsp; '以ID(大写)内容开头的文件<BR>&nbsp;&nbsp;&nbsp;&nbsp; strFields=strFields &amp; replace(RST.FIELDS(I).NAME,"ID","id") &amp; "," <BR>&nbsp;NEXT <BR>&nbsp;strFields=LEFT(strFields,LEN(strFields)-1)<BR>&nbsp;Response.Write(strFields)<BR>END IF</P>
<P>Response.Write(vbcrlf)</P>
<P>Response.Write(RST.GetString(,,","))</P>
<P>%&gt;</P>
<P>&nbsp;</P>
<P>[/quote]</P>

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.