ASP는 Excel 테이블 데이터를 SQLServer 데이터베이스로 대량 가져오기
4124 단어 excel 가져오기
' Excel
Function OpenExcel(path)
dim excel,rs,strsql
On Error Resume Next
Set rs = Server.CreateObject("ADODB.RecordSet")
Set excel = Server.CreateObject("ADODB.Connection")
excel.Open "Driver={Microsoft Excel Driver (*.xls)};DBQ=" & path
If Err.number<> 0 Then
Response.Write " Excel , , !"
Response.End
End If
strsql = "SELECT * FROM [Sheet1$]" ' , Sheet1$
Set rs = excel.Execute(strsql)
Set OpenExcel = rs
End Function
'
Dim rsInfo
Set rsInfo = Server.CreateObject("ADODB.RecordSet")
Set rsInfo = OpenExcel("E:/a.xls") ' Server.Path
'
If rsInfo.State<> 1 Then
Response.Write " Excel Sheet1, !"
Response.End
End If
If rsInfo.EOF And rsInfo.BOF Then
Response.Write " Excel , !"
Response.End
End If
If IsNull(rsInfo.Fields(0)) or Trim(rsInfo.Fields(0))="" Then
Response.Write " Excel , !"
Response.End
End If
' ,
If rsInfo.Fields.Count< 7 Then
Response.Write "Excel , !"
Response.End
End If
'
dim dbrs,conn,sql
Set conn = Server.CreateObject("ADODB.Connection")
Set dbrs = Server.CreateObject("ADODB.Recordset")
' : G_DB_ConnectString ,
conn.ConnectionString = G_DB_ConnectString
conn.Open '
'
sql = "IF EXISTS (SELECT * FROM sysobjects WHERE xtype='U' and name='tmp_PartRes') "
sql = sql & "BEGIN Drop table tmp_PartRes END "
sql = sql & "Create table tmp_PartRes([ID] int identity(1,1),"
sql = sql & "PartID varchar(100),Brand varchar(100),[Package] varchar(100),"
sql = sql & "BatchNo varchar(100),[Price] varchar(100),[Stock] varchar(100) default('0'),"
sql = sql & "Brief varchar(100),StockFlag int default(1),"
sql = sql & "SuperFlag int default(1),SaleFlag int default(1))"
conn.execute sql
' : , , , ,
' , , : where ID = -1
sql = "SELECT * FROM tmp_PartRes"
dbrs.CursorLocation = 3 ' 3
dbrs.Open sql,conn, 3, 4 ' 3 4
' , , , .
Set dbrs.ActiveConnection = Nothing
conn.close
' Excel , excel .
While Not rsInfo.EOF
If Trim(rsInfo.Fields(0))<> "" Then
dbrs.AddNew
dbrs("PartID") = Ucase(Trim(rsInfo.Fields(0)))
dbrs("Brand") = Trim(rsInfo.Fields(1))
dbrs("Package") = Trim(rsInfo.Fields(2))
dbrs("BatchNo") = Trim(rsInfo.Fields(3))
dbrs("Price") = Trim(rsInfo.Fields(4))
If Trim(rsInfo.Fields(5))<>"" Then
dbrs("Stock") = Trim(rsInfo.Fields(5))
Else
dbrs("Stock") = "0"
End If
dbrs("Brief") = Trim(rsInfo.Fields(6))
End If
rsInfo.MoveNext
Wend
'
conn.Open '
dbrs.ActiveConnection = conn
dbrs.UpdateBatch '
' ,
dbrs.Close
Set dbrs = Nothing
rsInfo.Close
Set rsInfo = Nothing
주: 원문 출처: http://freshflower.iteye.com/blog/1774733
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
대용량 Excel 파일 읽기(50w+ 지원) (3)1 온라인 메모리 넘침 문제 프레젠테이션 환경 준비 큰 excel 파일 준비(xlsx 크기 10M 이상) jvm의 heap를 500m로 축소(JVM 매개변수-Xmx500m) 아날로그 OOM 에 사용 매개변수를 사용하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.