この記事では、ASPを使用してExcelからデータベースを参照する方法を要約しています。
ASPは、データベースにExcelでデータのインポートを実装します
- <%Response.CodePage = 65001%>
- <%response.charset = utf-8%>
- <%
- wenjian = request.form(select)
- 'ファイル拡張子を取得します
- ext = fileexec(wenjian)
- 'ファイル拡張を判断します
- Ifext <> xlSthen
- respons.write(<script> alert( 'ファイルタイプが正しくない、検証してください!'); window.location.href = 'index.html'; </script>)
- Response.End()
- endif
- dimobjconn、objrs
- dimstrconn、strsql
- setobjconn = server.createObject(adodb.Connection)
- setobjrs = server.createObject(adodb.Recordset)
- excelfile = server.mappath(wenjian)
- 'excel2007の場合
- strconn = provider = microsoft.ace.oledb.12.0; dataSource =&excelfile&;&extendedproperties = excel8.0;
- objconn.openstrconn
- strsql = select*from [sheet1 $]
- objrs.openstrsql、objconn、1,1
- objrs.movefirst
- %> <! - #includefile = conn.asp-> <%
- 'すべてのレコードをExcelでループします
- wherenotobjrs.eof
- setrs = server.createObject(adodb.Recordset)
- 'クエリステートメント
- sql_s = select*fromceshiwhere whereelname = '&objrs(0)&' andold = '&objrs(1)&'および '&objrs(2)&' andguojia = '&objrs(3)&' andqq = '&objrs(4)&' '' '
- rs.opensql_s、conn、1,1
- 「複製データを入力しないでください
- ifrs.eofthen
- 'ステートメントを挿入します
- '**** Excelの最初のアイテムは入力されません****
- sql = Intersintoceshi(lname、old、sex、guojia、qq)値( '&objrs(0)&'、 '&objrs(1)&'、 '&objrs(2)&'、 '&objrs(3)&'、 '&objrs (3)& '、'&objrs(4)& ')
- '挿入を実行します
- conn.execute(sql)
- endif
- objrs.movenext
- rs.close
- setrs =何もない
- ウェンド
- 「もう一度閉じる時が来ました
- conn.close
- setConn =何もない
- objrs.close
- objconn.close
- setobjrs =何もない
- setobjconn =何もない
- Response.write(<script> alert( 'Import ressultfully'); window.location.href = 'index.html'; </script>))
- Response.End()
- functionfileexec(filename)
- fileexec = mid(filename、instr(filename、。)+1、len(filename)-instr(filename、。))
- エンド機能
- %>
コードの別の単純化バージョンを共有します
- wenjian = request.form(floor)
- fileext = mid(wenjian、instrrev(wenjian、。)+1)
- iflcase(fileext)<> xlSthen
- respons.write <script> alert( 'ファイル形式が間違っている場合、excelファイルをアップロードしてください'); window.location.href = 'updatefloor.asp'; </script>
- Response.End
- endif
- setConne = server.createObject(adodb.Connection)
- connstre = provider = microsoft.jet.oledb.4.0; dataSource =&server.mappath(&wenjian&)&; extendedproperties = 'excel8.0; hdr = yes; imex = 1';
- conne.openconnstre
- sqle = select*from [sheet1 $]
- setrse = server.createObject(adodb.recordset)
- rse.opensqle、conne、1,1
- '確認する
- ハング= 2
- Dowhilenottrse.eof
- 「名前を空にすることはできません
- iftrim(rse(0))<> then
- それ以外
- MESS =&Hung&Lineの名前は空です。チェックしてください!
- Response.Write <Script> Alert( '&Mess&')。window.location.href = 'updatefloor.asp' </scrip>
- Response.End()
- endif
- rse.movenext
- ハング=ハング+1
- ループ
- rse.movefirst
- Dowhilenottrse.eof
- setrst = server.createObject(adodb.recordset)
- sqlt = select*fromsellman
- rst.opensqlt、conn、1,3
- rsst.addnew()
- rst(companyname)= c2(rse(0))
- rst(companyinfo)= c2(rse(1))
- rst(address)= c2(rse(2))
- rst(tel)= c2(rse(3))&& c2(rse(7))
- rst(fax)= c2(rse(4))
- rst(linkman)= c2(rse(5))
- RST(HomePage)= C2(RSE(8))
- rst(email)= c2(rse(6))
- rsst.update()
- rsst.close
- setrst =何もない
- rse.movenext
- ループ
- rse.close
- settrse = Nothing
- Response.Write <Script> alert( 'Imported ressuletfully'); location.href = 'updatefloor.asp'; </script>
実際、単にアクセスデータベースのように配置し、Excelファイルを開き、SQL Serverに書き込む場合は、書き込みプロセスを変更します。
コードを見てください:
- ディムコン
- dimconn2
- setConn = createObject(adodb.Connection)
- conn.openprovider = microsoft.jet.oledb.4.0; jetoledb:databasepassword =; dataSource = c:/book1.mdb
- setConn2 = createObject(adodb.Connection)
- conn2.openprovider = microsoft.jet.oledb.4.0; jetoledb:databasepassword =; extendedProperties = excel5.0; dataSource = c:/book1.xls
- sql = select*from [sheet1 $]
- setrs = conn2.execute(sql)
- wherenotrs.eof
- sql = IntersintIntoxxx([a]、[b]、[c]、[d])values( '&fixsql(rs(0))&'、 '&fixsql(rs(1))&'、 '&fixsql(rs(2))値(2 ))& '、'&fixsql(rs(3))& ')
- conn.execute(sql)
- rs.movenext
- ウェンド
- conn.close
- setConn =何もない
- conn2.close
- setConn2 =何もない
- functionfixsql(str)
- Dimnewstr
- 新聞= str
- ifisnull(newtr)
- 新聞=
- それ以外
- 新聞=交換(newtr、 '、' ')
- endif
- fixsql = newtr
- エンド機能