欢迎光临
我们一直在努力

导入Excel电子表格数据到SQL Sever数据库-ASP教程,数据库相关

建站超值云服务器,限时71元/月

<%

on error resume next

导入excel电子表格数据到sql sever数据库 by dicky 2004-12-27 16:41:12 qq:25941

function open_conn(sqldatabasename,sqlpassword,sqlusername,sqllocalname,sqlconn)

创建数据库连接对象并打开数据库连接

dim connstr

sql server数据库连接参数:数据库名、用户密码、用户名、连接名(本地用local,外地用ip)

connstr = "provider=sqloledb; user id=" & sqlusername & "; password=" & sqlpassword & "; initial catalog = " & sqldatabasename & "; data source=" & sqllocalname & ";"

set sqlconn = server.createobject("adodb.connection")

sqlconn.open connstr

if err then

err.clear

set sqlconn = nothing

response.write "数据连接错误!"

response.end

end if

end function

function close_conn(sqlconn)

关闭数据库连接并清除数据库连接对象

if isobject(sqlconn) then

sqlconn.close

set sqlconn = nothing

end if

end function

call open_conn("shat_edg","","sa","(local)",sqlconn) 打开sql server数据库连接

function get_emp_cnname(ntaccnt)

根据用户nt帐号得到用户中文名

dim sql,rs

sql = "select emp_cname from rf_employee where emp_ntaccnt="&ntaccnt&""

set rs = server.createobject("adodb.recordset")

rs.open sql,sqlconn,1,1

if rs.eof then

get_emp_cnname = ""

else

get_emp_cnname = rs("emp_cname")

end if

rs.close

set rs = nothing

end function %>

<html>

<head>

<title>导入excel电子表格数据到sql sever数据库</title>

<body bgcolor="#acd9af">

<center><b>导入excel电子表格数据到sql sever数据库</b></center>

<form method="post" name="form1">

請選擇數據源: <input type="file" name="file" size="40" title="请选择需要導出的excel文件"> <input type=submit name=submit value="開始導出">

<br>請選擇目標表:

<select name="table" title="请选择需要导入数据的表">

<option></option>

<% dim rssqldatabasetable

set rssqldatabasetable = sqlconn.openschema(20)

do while not rssqldatabasetable.eof %>

<option<%if trim(request("table"))=rssqldatabasetable(2) then response.write " selected"%>><%=rssqldatabasetable(2)%></option>

<% rssqldatabasetable.movenext:loop

set rssqldatabasetable = nothing %>

</select>

</form>

<font color=blue>導出過程中請不要刷新頁面!</font><br>

<%

if right(trim(request("file")),3) = "xls" then

response.write "<font color=red>您所導出的excel文件是:"&trim(request("file"))&"</font><br>"

end if

=====================asp读取excel注事项=====================================

i)将excel97或excel2000生成的xls文件(book)看成一个数据库,其中的每一个工作表(sheet)看成数据库表

ii)ado假设excel中的第一行为字段名.所以你定义的范围中必须要包括第一行的内容

iii)excel中的行标题(即字段名)不能够包含数字. excel的驱动在遇到这种问题时就会出错的。例如你的行标题名为“f1”

iiii)如果你的excel电子表格中某一列同时包含了文本和数字的话,那么excel的odbc驱动将不能够正常, 处理这一行的数据类型,你必须要保证该列的数据类型一致

e-mail:kaxue@hotmail.com qq:484110 homepage:www.flyday.net

整理时间:thursday, may 23, 2002 5:54 pm win2000server+iis5 测式通过

============================================================================

if trim(request("file")) = "" then

response.write "<font color=red>對不起,請選擇需要導出的excel文件!</font>"

response.end

elseif right(trim(request("file")),3) <> "xls" then

response.write "<font color=red>對不起,請確定您要導出的是excel文件!</font>"

response.end

else

列出所選擇的excel文件中的所有工作表

dim execlfile,objexcelapp,objexcelbook

execlfile = trim(request("file"))

set objexcelapp = createobject("excel.application")

objexcelapp.quit

objexcelapp.displayalerts = false 不显示警告

objexcelapp.application.visible = false 不显示界面

objexcelapp.workbooks.open(execlfile)

set objexcelbook = objexcelapp.activeworkbook

redim arrsheets(objexcelbook.sheets.count)

for i=1 to objexcelbook.sheets.count

arrsheets(i) = objexcelbook.sheets(i).name

response.write arrsheets(i)

next

objexcelapp.quit

set objexeclapp = nothing

列出所選擇的excel文件中的所有工作表

end if

dim conn,driver,dbpath,rs,sqlinsert,sqldelete

建立connection对象

set conn = server.createobject("adodb.connection")

driver = "driver={microsoft excel driver (*.xls)};"

dbpath = "dbq=" & server.mappath( "hrb.xls" )

dbpath = "dbq=" & trim(request("file"))

调用open 方法打开数据库

conn.open driver & dbpath

dsn连接方式

conn.open "dsn=test"

注意 表名一定要以下边这种格式 "[表名$]" 书写

for i = 1 to ubound(arrsheets)開始循環所有工作表

sql = "select * from ["& arrsheets(i) &"$] "

set rs = conn.execute(sql)

if rs.eof and rs.bof then

response.write "没有找到您需要的数据!!<br>"

else

response.write "<font color=blue>工作表:</font><font color=green>"&arrsheets(i)&"</font><br>"

do while not rs.eof

sqlinsert = "insert into "&trim(request("table"))&" (edg_project_name,edg_project_no,edg_project_vm,edg_project_vm_cnname,edg_project_m,edg_project_m_cnname,edg_project_director,edg_project_director_cnname) values ("&trim(rs(0))&","&trim(rs(1))&","&trim(rs(2))&","&trim(rs(2))&"("&get_emp_cnname(trim(rs(2)))&")"&","&trim(rs(3))&","&trim(rs(3))&"("&get_emp_cnname(trim(rs(3)))&")"&","&trim(rs(4))&","&trim(rs(4))&"("&get_emp_cnname(trim(rs(4)))&")"&")"

此处插入的值根据实际数据库结构进行调整

sqlconn.execute(sqlinsert)插入excel表格裏所有東東

rs.movenext

loop

response.write "<font color=red>恭喜,成功導出excel文件中工作表[</font><font color=blue>"&arrsheets(i)&"</font><font color=red>]的數據到sql server數據表[<font color=blue>"&trim(request("table"))&"</font>]中!^_^</font><br>"

end if

rs.close

set rs = nothing

next循環所有工作表結束

call close_conn(conn) 关闭excel数据库连接

call close_conn(sqlconn) 关闭sql server数据库连接 %>

</body>

</html>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 导入Excel电子表格数据到SQL Sever数据库-ASP教程,数据库相关
分享到: 更多 (0)