Username: Password:

导入Excel电子表格数据到SQL Sever数据库-ASP教程,数据库相关
来源:作者: 发布时间:2007-12-26 02:05:49

<%
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 %>


导入excel电子表格数据到sql sever数据库

导入excel电子表格数据到sql sever数据库


?????源:

???目?表:


?出?程中?不要刷新?面!

<%
if right(trim(request("file")),3) = "xls" then
response.write "您所?出的excel文档是:"&trim(request("file"))&"
"
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 "?不起,???需要?出的excel文档!"
response.end
elseif right(trim(request("file")),3) <> "xls" then
response.write "?不起,??定您要?出的是excel文档!"
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 "没有找到您需要的数据!!
"
else
response.write "工作表:"&arrsheets(i)&"
"
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 "恭喜,成功?出excel文档中工作表["&arrsheets(i)&"]的??到sql server??表["&trim(request("table"))&"]中!^_^
"
end if

rs.close
set rs = nothing
next循?任何工作表?束

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




喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅