数据库导出xml、htm、csv、sql

原创 2004年09月18日 02:36:00

<!--#include file='../conn.asp'-->
<%
'数据库导出记录代码
'作者海娃,haiwa#blueidea.com,http://www.51windows.Net
'用法:
'ExportDB.asp?sql=select语句&tablename=表名(可选)&filetype=导出格式(xml,htm,csv,sql)&pid=自动编号字段名(仅当导出sql类型时有用)
dim tablename,filetype,fieldPid
sql   = request("sql")
tablename = request("tablename")
filetype = lcase(request("filetype"))
fieldPid = request("pid")
if fieldPid = "" then
 fieldPid = "id"
end if
fieldPid = lcase(fieldPid)
if lcase(left(sql,6))<>"select" then
 Response.write "sql语句必须为select * from [table] where ......."
 Response.end
end if

if tablename = "" then
 tablename = "数据导出结果"
end if

function HTMLEncode(fString)
 if not isnull(fString) then
  fString = Server.HTMLEncode(fString)
  fString = Replace(fString, CHR(10) & CHR(10), "</P><P> ")
  fString = Replace(fString, CHR(10), "<BR> ")
  fString = Replace(fString, CHR(9), "&nbsp;&nbsp;")

  HTMLEncode = fString
 end if
end function

function Myreplace(str)
 if not isnull(str) then
  fString = Replace(fString,"""", """""")
  Myreplace = str
 else
  Myreplace = ""
 end if
end function

function Myreplace2(str)
 if not isnull(str) then
  fString = Replace(fString,"'", "''")
  Myreplace2 = str
 else
  Myreplace2 = ""
 end if
end function

dim def_export_sep,def_export_val
def_export_sep = ","
def_export_val = """"

Set rs = Conn.Execute(sql)
'导出XML文件
if filetype="xml" then
 Response.contenttype="text/xml"
 Response.Charset = "gb2312"
 Response.AddHeader "Content-Disposition", "attachment;filename="&tablename&".xml"
 Response.write "<?xml version=""1.0"" encoding=""gb2312""?>" & vbnewline
 Response.write "<root>"
 strLine=""
 dim thefield(50)
 i = 0
 For  each  x  in  rs.fields
  thefield(i)=x.name
  i=i+1
 Next
 While rs.EOF =false
 strLine= vbnewline&chr(9)&"<row>"
 k=0
 For  each  x  in  rs.fields
  strLine=  strLine & vbnewline&chr(9)&chr(9)&"<"&thefield(k)&">"
  if instr(x.value,"<")>0 or instr(x.value,">")>0 or instr(x.value,"&")>0 or len(x.value)>255 then
   strLine=  strLine &"<![CDATA["& x.value &"]]>"
  else
   strLine=  strLine & x.value
  end if
  strLine=  strLine &"</"&thefield(k)&">"
  k=k+1
 Next
 rs.MoveNext
 Response.write strLine &vbnewline& chr(9)&"</row>"
 Wend
Response.write vbnewline&"</root>"

'导出sql文件
elseif filetype="sql" then
 Response.contenttype="text/sql"
 Response.AddHeader "Content-Disposition", "attachment;filename="&tablename&".sql"
 strLine=""
 dim sql_insert
 For  each  x  in  rs.fields
  if lcase(x.name)<>fieldPid then '如果是自动编号
   strLine=  strLine  & def_export_val &  x.name & def_export_val & def_export_sep
  end if
 Next
 strLine = replace(left(strLine,len(strLine)-1),"""","")
 strLine = "insert into ["&tablename&"] (" & strLine & ") values "
 sql_insert = strLine
 'Response.write strLine & vbnewline
 'response.end
 While rs.EOF =false
 strLine= ""
 def_export_val = "'"
 For  each  x  in  rs.fields
  if lcase(x.name)<>fieldPid then
   '2004-8-11更新 Null值时无法导出的bug。
   x_value = x.value
   if isnull(x_value) or len(x_value) = 0 then
    x_value = ""
   else
    x_value = replace(x_value,"'","''")
   end if
   strLine=  strLine & def_export_val & x_value & def_export_val & def_export_sep
  end if
 Next
 rs.MoveNext
 strLine = left(strLine,len(strLine)-1)
 Response.write sql_insert & "("& strLine &")*" & vbnewline
 Wend
elseif filetype="csv" then
 Response.contenttype="text/csv"
 Response.AddHeader "Content-Disposition", "attachment;filename="&tablename&".csv"
 strLine=""
 For  each  x  in  rs.fields
  strLine=  strLine  & def_export_val &  x.name & def_export_val & def_export_sep
 Next
 Response.write strLine & vbnewline
 While rs.EOF =false
  strLine= ""
  For  each  x  in  rs.fields
   strLine=  strLine & def_export_val & Myreplace(x.value) & def_export_val & def_export_sep
  Next
  rs.MoveNext
  Response.write strLine & vbnewline
 Wend
else
 if filetype="htm" then'弹出下载html的对话框
  Response.contenttype="application/ms-download"
  Response.AddHeader "Content-Disposition", "attachment;filename="&tablename&".htm"
 end if
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META NAME="Author" CONTENT="51windows,海娃,haiwa">
<META NAME="Description" CONTENT="Power by 51windows.Net">
<title>导出数据 - www.51windows.Net</title>
<style>
<!--
body,input,select       { font-family: Tahoma; font-size: 8pt }
th         { font-family: Tahoma; font-size: 8pt;padding:3px;color:#FFFFFF;background-color:#999999;}
td         { font-family: Tahoma; font-size: 8pt;padding:3px;background-color:#EFEFEF;}
-->
</style>
</head>
<BODY style="overflow:auto;" topmargin=2 bgcolor=buttonface>

<form method="post" name=myform>
SQL:<input type="text" name="sql" value="<% = sql%>">
表名:<input type="text" name="tablename" value="<% = tablename %>" size="8">
导出格式:<select size="1" name="filetype">
<option value="">请选择</option>
<option <%if filetype = "htm" then Response.write "selected "%>value="htm">htm</option>
<option <%if filetype = "xml" then Response.write "selected "%>value="xml">xml</option>
<option <%if filetype = "csv" then Response.write "selected "%>value="csv">csv</option>
<option <%if filetype = "sql" then Response.write "selected "%>value="sql">sql</option>
</select>
自动编号字段名:<input type="text" name="pid" value="<% = fieldPid%>" size="8"><input type="submit" value="确定">
</form>

<div align="center">
<table border="0" cellpadding="0" cellspacing="1" bgcolor="#000000">
 <tr>
<%
i=0
 For  each  x  in  rs.fields 
  strLine=  strLine  &chr(9)&chr(9)&"<th align=""center"">"&  x.name  &"</th>"& vbnewline
 Next
 Response.write strLine&chr(9)&"</tr>"& vbnewline & vbnewline
 While rs.EOF =false
  i=i+1
  Response.write chr(9)&"<tr>"& vbnewline
  strLine= ""
  For  each  x  in  rs.fields
   strLine=  strLine  &chr(9)&chr(9)&"<td>"&  HTMLEncode(x.value) &"</td>"& vbnewline
  Next
  rs.MoveNext
  Response.write strLine
  Response.write chr(9)&"</tr>"& vbnewline & vbnewline
 Wend
Response.write "</table>"& vbnewline
if filetype<>"htm" and filetype<>"xls" and filetype<>"sql" then
Response.write "<p style='line-height:160%;'>"&i&"条记录 <a href='?tablename="& tablename &"&pid="& fieldPid &"&filetype=htm&sql="&server.urlencode(sql)&"'>导出HTML</a>"
Response.write "|<a href='?tablename="& tablename &"&pid="& fieldPid &"&filetype=csv&sql="&server.urlencode(sql)&"'>导出EXCEL</a>"
Response.write "|<a href='?tablename="& tablename &"&pid="& fieldPid &"&filetype=xml&sql="&server.urlencode(sql)&"'>导出XML</a>"
Response.write "|<a href='?tablename="& tablename &"&pid="& fieldPid &"&filetype=sql&sql="&server.urlencode(sql)&"'>导出SQL</a>"& vbnewline
end if
Response.write "<p>Power by <A HREF=""http://www.51windows.Net"" target=""_blank"">51windows.Net</A>"& vbnewline
Response.write "</div>"& vbnewline
Response.write "</BODY>"& vbnewline
Response.write "</HTML>"& vbnewline

end if
rs.close
conn.close
Set rs=nothing
Set conn=nothing
%>

Hive总结(十)Hive 输入输出适配类(输出CSV,XML)

初次使用 hive ,应该说上手还是挺快的。 Hive 提供的类 SQL 语句与 mysql 语句极为相似,语法上有大量相同的地方,这给我们上手带来了很大的方便,但是要得心应手地写好这些语句,还需要对...
  • lifuxiangcaohui
  • lifuxiangcaohui
  • 2014年10月30日 17:54
  • 7097

用sqlyog导出csv出现乱码

点击’Fill Excel Friendly Values‘,在'NULL value replaced by'处将\N删掉(如果不点击Fill Excel Friendly Values,则所有值默...
  • YABIGNSHI
  • YABIGNSHI
  • 2016年06月12日 17:26
  • 3559

【SQL Server数据迁移】把csv文件中的数据导入SQL Server的方法

--修改高级参数 sp_configure 'show advanced options',1 go --允许即席分布式查询 sp_configure 'Ad Hoc Distributed Que...
  • yupeigu
  • yupeigu
  • 2013年10月10日 17:09
  • 6726

数据库导出xml、htm、csv、sql代码

数据库导出xml、htm、csv、sql代码 用法:ExportDB.asp?sql=select语句&table=表名(可选)&filetype=导出格式(xml,htm,csv,sql)&pi...
  • cncco
  • cncco
  • 2011年12月30日 01:39
  • 512

Table表格导出为Excel、csv、txt、sql、json、xml、Word格式

  • 2017年09月09日 15:35
  • 24.05MB
  • 下载

Bootstrap导出json, xml, csv, txt, sql, excel类型demo

  • 2017年06月26日 11:15
  • 1.63MB
  • 下载

js导出前台文件 支持 csv、txt、sql、json、xml、excel、doc、png、pdf 导出

  • 2017年12月08日 13:52
  • 62KB
  • 下载

数据库数据导出工具:导出格式支持MS Excel,CSV, HTML, XML, DBF, Text, MS Word, MS Access

  • 2013年03月18日 20:31
  • 27.27MB
  • 下载

CSV格式导入导出到sql数据库asp.net

  • 2013年02月26日 14:08
  • 333KB
  • 下载

C#写的将csv文件导入至sql数据库,带存储过程的实例

  • 2013年02月21日 09:34
  • 188KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据库导出xml、htm、csv、sql
举报原因:
原因补充:

(最多只允许输入30个字)