首页 > 编程 > ASP > 正文

asp实现excel中的数据导入数据库

2024-05-04 11:10:04
字体:
来源:转载
供稿:网友

本文给大家汇总介绍了使用asp实现将Excel中数据导入到数据库中的方法,需要的朋友可以参考一下

asp实现excel中的数据导入数据库

 

 
  1. <% Response.CodePage=65001%> 
  2. <% Response.Charset="UTF-8" %> 
  3. <% 
  4. wenjian = request.Form("select"
  5.  
  6. '获取文件扩展名 
  7. ext = FileExec(wenjian) 
  8. '判断文件扩展名 
  9. if ext <> "xls" then 
  10. response.Write("<script>alert('文件类型不对,请核实!');window.location.href='index.html';</script>"
  11. response.End() 
  12. end if 
  13.  
  14. Dim objConn,objRS 
  15. Dim strConn,strSql 
  16.  
  17. set objConn=Server.CreateObject("ADODB.Connection"
  18. set objRS=Server.CreateObject("ADODB.Recordset"
  19.  
  20. excelFile = server.mappath(wenjian)  
  21. '针对excel 2007 
  22. strConn = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & excelFile & ";" & "Extended Properties=Excel 8.0;" 
  23. objConn.Open strConn 
  24.  
  25. strSql="SELECT * FROM [Sheet1$]" 
  26.  
  27. objRS.Open strSql,objConn,1,1 
  28. objRS.MoveFirst 
  29.  
  30. %><!--#include file="conn.asp"--><% 
  31. '循环excel中所有记录 
  32. while not objRS.eof 
  33.  
  34. set rs = Server.CreateObject("Adodb.Recordset"
  35. '查询语句 
  36. sql_s = "select * from ceshi where lname='" & objRS(0) & "' and old='" & objRS(1) & "' and sex='" & objRS(2) & "' and guojia='" & objRS(3) & "' and QQ='" & objRS(4) & "'" 
  37. rs.open sql_s, conn, 1, 1 
  38. '重复的数据不做录入操作 
  39. if rs.eof then 
  40. '插入语句 
  41. '****excel中第一条不会被录入**** 
  42. sql = "insert into ceshi (lname, old, sex, guojia, QQ)values ('" & objRS(0) & "', '" & objRS(1) & "', '" & objRS(2) & "', '" & objRS(3) & "', '" & objRS(4) & "')" 
  43. '执行插入 
  44. conn.execute(sql) 
  45. end if 
  46. objRS.MoveNext  
  47. rs.close 
  48. set rs = nothing 
  49. wend 
  50.  
  51. '又到了各种关闭的时候 
  52. conn.close 
  53. set conn = nothing 
  54. objRS.Close 
  55. objConn.Close 
  56. set objRS = Nothing 
  57. set objConn = Nothing 
  58.  
  59. response.Write("<script>alert('导入成功');window.location.href='index.html';</script>"
  60. response.End() 
  61.  
  62. Function FileExec(fileName) 
  63. FileExec = Mid(fileName,Instr(fileName,".")+1,Len(fileName)-Instr(fileName,".")) 
  64. End Function 
  65. %> 

再分享一个简化版的代码

 

 
  1. wenjian=request.Form("floor"
  2. fileext=mid(wenjian,InStrRev(wenjian,".")+1) 
  3. if lcase(fileext)<>"xls" then 
  4. response.write "<script>alert ('文件格式不对,请上传Excel文件');window.location.href='updateFloor.asp';</script>" 
  5. response.end 
  6. end if 
  7. set conne=server.CreateObject("ADODB.Connection"
  8. connStre="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath( ""&wenjian&"" )&";Extended Properties='Excel 8.0;HDR=YES;IMEX=1';" 
  9. conne.open connStre 
  10. Sqle="select * from [sheet1$] " 
  11. Set rse = Server.CreateObject("ADODB.Recordset"
  12. rse.open sqle,conne,1,1 
  13. '验证 
  14. hang=2 
  15. do while not rse.eof 
  16. '名称不能为空 
  17. if trim(rse(0))<>"" then 
  18. else 
  19. mess="第"& hang &"行名称为空,请检查!" 
  20. response.Write"<script>alert('"& mess &"').window.location.href='updateFloor.asp'</script>" 
  21. response.End() 
  22. end if  
  23. rse.movenext 
  24. hang=hang+1 
  25. loop 
  26. rse.movefirst 
  27. do while not rse.eof 
  28. set rst=server.CreateObject("adodb.recordset"
  29. sqlt="select * from Sellman" 
  30. rst.open sqlt,conn,1,3 
  31. rst.addnew() 
  32. rst("CompanyName")=c2(rse(0)) 
  33. rst("CompanyInfo")=c2(rse(1)) 
  34. rst("address")=c2(rse(2)) 
  35. rst("tel")=c2(rse(3))&""&c2(rse(7)) 
  36. rst("Fax")=c2(rse(4)) 
  37. rst("linkman")=c2(rse(5)) 
  38. rst("Homepage")=c2(rse(8)) 
  39. rst("Email")=c2(rse(6)) 
  40. rst.update() 
  41. rst.close 
  42. set rst=nothing 
  43. rse.movenext 
  44. loop 
  45. rse.close 
  46. set rse=nothing 
  47. response.Write "<script>alert('导入成功!');location.href='updateFloor.asp';</script>" 

其实简单的说象access 数据库一样,把excel文件打开,再进行读再写到access中你要写到sqlserver中就把写的过程改一下就成了

看下代码:

 

 
  1. dim conn  
  2. dim conn2  
  3. set conn=CreateObject("ADODB.Connection")  
  4. conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Data Source=c:/book1.mdb" 
  5.  
  6. set conn2=CreateObject("ADODB.Connection")  
  7. conn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Extended properties=Excel 5.0;Data Source=c:/book1.xls" 
  8.  
  9.  
  10. sql = "SELECT * FROM [Sheet1$]" 
  11. set rs = conn2.execute(sql)  
  12. while not rs.eof  
  13. sql = "insert into xxx([a],[b],[c],[d]) values('"& fixsql(rs(0)) &"','"& fixsql(rs(1)) &"','"& fixsql(rs(2)) &"','"& fixsql(rs(3)) &"')" 
  14. conn.execute(sql)  
  15. rs.movenext  
  16. wend  
  17.  
  18. conn.close  
  19. set conn = nothing  
  20. conn2.close  
  21. set conn2 = nothing  
  22.  
  23. function fixsql(str)  
  24. dim newstr  
  25. newstr = str  
  26. if isnull(newstr) then  
  27. newstr = "" 
  28. else  
  29. newstr = replace(newstr,"'","''")  
  30. end if  
  31. fixsql = newstr  
  32. end function  

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表