Der Code für ASP zum Importieren von Excel-Daten in SQL Server ist etwas chaotisch, sodass Sie ihn je nach Bedarf nachschlagen können. Kopieren Sie den Codecode wie folgt:
<form action=insert.asp method=post enctype=multipart/form-data name=form1 onSubmit=b1_onclick()>
<table width=500 border=1 align=center cellpadding=0 cellspacing=0>
<tr>
<td colspan=2 bgcolor=#999999 class=t>Datei auswählen
</td>
</tr>
<tr>
<td colspan=2 class=t> </td>
</tr>
<tr>
<td width=126 class=t>Datei auswählen (Excel)
</td>
<td width=368 class=t><label>
<Eingabename=filexls type=file size=35>
</label></td>
</tr>
<tr>
<td colspan=2 class=t>
<Beschriftung>
<Eingabetyp=Name übermitteln=Wert übermitteln=Daten importieren>
</label>
<a href=1122.asp class=t>Zurück</a>
</td>
</tr>
</table>
</form>
<!--#include virtual=/inc/clsdbctrl.asp-->
<!--#include virtual=/inc/function.asp-->
<%
dimmen Sie upfile_5xSoft_Stream
Klasse upload_5xSoft
dim Form, Datei, Version
Private Sub Class_Initialize
dim iStart,iFileNameStart,iFileNameEnd,iEnd,vbEnter,iFormStart,iFormEnd,theFile
dim strDiv,mFormName,mFormValue,mFileName,mFileSize,mFilePath,iDivLen,mStr
Version=Ren Xiangs spezielles Upload-Programm
Wenn Request.TotalBytes<1, dann Exit Sub
set Form=CreateObject(Scripting.Dictionary)
set File=CreateObject(Scripting.Dictionary)
set upfile_5xSoft_Stream=CreateObject(Adodb.Stream)
upfile_5xSoft_Stream.mode=3
upfile_5xSoft_Stream.type=1
upfile_5xSoft_Stream.open
upfile_5xSoft_Stream.write Request.BinaryRead(Request.TotalBytes)
vbEnter=Chr(13)&Chr(10)
iDivLen=inString(1,vbEnter)+1
strDiv=subString(1,iDivLen)
iFormStart=iDivLen
iFormEnd=inString(iformStart,strDiv)-1
während iFormStart < iFormEnd
iStart=inString(iFormStart,name=)
iEnd=inString(iStart+6,)
mFormName=subString(iStart+6,iEnd-iStart-6)
iFileNameStart=inString(iEnd+1,filename=)
wenn iFileNameStart>0 und iFileNameStart<iFormEnd dann
iFileNameEnd=inString(iFileNameStart+10,)
mFileName=subString(iFileNameStart+10,iFileNameEnd-iFileNameStart-10)
iStart=inString(iFileNameEnd+1,vbEnter&vbEnter)
iEnd=inString(iStart+4,vbEnter&strDiv)
wenn iEnd>iStart dann
mFileSize=iEnd-iStart-4
anders
mFileSize=0
Ende wenn
setze theFile=new FileInfo
theFile.FileName=getFileName(mFileName)
theFile.FilePath=getFilePath(mFileName)
theFile.FileSize=mFileSize
theFile.FileStart=iStart+4
theFile.FormName=FormName
file.add mFormName,theFile
anders
iStart=inString(iEnd+1,vbEnter&vbEnter)
iEnd=inString(iStart+4,vbEnter&strDiv)
wenn iEnd>iStart dann
mFormValue=subString(iStart+4,iEnd-iStart-4)
anders
mFormValue=
Ende wenn
form.Fügen Sie mFormName,mFormValue hinzu
Ende wenn
iFormStart=iformEnd+iDivLen
iFormEnd=inString(iformStart,strDiv)-1
wenden
Sub beenden
Private Function subString(theStart,theLen)
dimi,c,stemp
upfile_5xSoft_Stream.Position=theStart-1
stem=
für i=1 bis theLen
Wenn upfile_5xSoft_Stream.EOS, dann Exit für
c=ascB(upfile_5xSoft_Stream.Read(1))
Wenn c > 127, dann
Wenn upfile_5xSoft_Stream.EOS, dann Exit für
stemp=stemp&Chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c)))
i=i+1
anders
stemp=stemp&Chr(c)
Ende wenn
Nächste
subString=stemp
Funktion beenden
Private Funktion inString(theStart,varStr)
dim i,j,bt,theLen,str
InString=0
Str=toByte(varStr)
theLen=LenB(Str)
für i=theStart zu upfile_5xSoft_Stream.Size-theLen
Wenn i>upfile_5xSoft_Stream.size, dann beenden Sie die Funktion
upfile_5xSoft_Stream.Position=i-1
Wenn AscB(upfile_5xSoft_Stream.Read(1))=AscB(midB(Str,1)) dann
InString=i
für j=2 zu theLen
wenn upfile_5xSoft_Stream.EOS dann
inString=0
Ausgang für
Ende wenn
if AscB(upfile_5xSoft_Stream.Read(1))<>AscB(MidB(Str,j,1)) then
InString=0
Ausgang für
Ende wenn
nächste
Wenn InString<>0, dann Exit-Funktion
Ende wenn
nächste
Funktion beenden
Private Unterklasse_Terminate
form.RemoveAll
file.RemoveAll
setze form=nichts
setze file=nichts
upfile_5xSoft_Stream.close
set upfile_5xSoft_Stream=nichts
Sub beenden
Private Funktion GetFilePath(FullPath)
Wenn FullPath <> dann
GetFilePath = left(FullPath,InStrRev(FullPath, /))
Anders
GetFilePath =
Ende wenn
Funktion beenden
Private Funktion GetFileName(FullPath)
Wenn FullPath <> dann
GetFileName = mid(FullPath,InStrRev(FullPath, /)+1)
Anders
GetFileName =
Ende wenn
Funktion beenden
Private Funktion toByte(Str)
dim i,iCode,c,iLow,iHigh
toByte=
Für i=1 bis Len(Str)
c=mid(Str,i,1)
iCode =Asc(c)
Wenn iCode<0, dann ist iCode = iCode + 65535
Wenn iCode>255, dann
iLow = Left(Hex(Asc(c)),2)
iHigh =Right(Hex(Asc(c)),2)
toByte = toByte & chrB(&H&iLow) & chrB(&H&iHigh)
Anders
toByte = toByte & chrB(AscB(c))
Ende wenn
Nächste
Funktion beenden
Unterricht beenden
Klasse FileInfo
dimmen Sie FormName, FileName, FilePath, FileSize, FileStart
Private Sub Class_Initialize
Dateiname =
FilePath =
FileSize = 0
FileStart= 0
FormName =
Sub beenden
Öffentliche Funktion SaveAs(FullPath)
dim dr,ErrorChar,i
Speichern unter = 1
Wenn trim(fullpath)= oder FileSize=0 oder FileStart=0 oder FileName=, dann beenden Sie die Funktion
Wenn FileStart=0 oder right(fullpath,1)=/, dann beenden Sie die Funktion
set dr=CreateObject(Adodb.Stream)
dr.Mode=3
dr.Type=1
dr.Öffnen
upfile_5xSoft_Stream.position=FileStart-1
upfile_5xSoft_Stream.copyto dr,FileSize
dr.SaveToFile FullPath,2
dr.Schließen
setze dr=nichts
Speichern unter = 0
Endfunktion
Unterricht beenden
%>
<%
Funktion sqlstr(data)
Wenn nicht, ist es null (Daten), dann
sqlstr='& replace(data,','') &'
anders
sqlstr='& Daten &'
Ende wenn
Endfunktion
%>
<%
session.CodePage=936
Server.ScriptTimeOut=600000
set upload=new upload_5xsoft
set file=upload.file(filexls)
%>
<%
wenn file.fileSize>0 dann
Dateiname = Jahr (jetzt) & Monat (jetzt) & Tag (jetzt) & Stunde (jetzt) & Minute (jetzt) & Sekunde (jetzt)
Dateiname=Dateiname+.
filenameend=file.filename
filenameshow=file.filename
filenameend=split(filenameend,.)
wenn filenameend(1)=xls dann
Dateiname=Dateiname&Dateinameende(1)
file.saveAs Server.mappath(uploadfiles/&filename)
anders
Das Datenformat von „response.write“ ist falsch!
Response.write <a href=file_upload.asp>return
Antwort.end()
Ende wenn
setze file=nichts
anders
Die Datei „response.write“ darf nicht leer sein!
Response.write <a href=file_upload.asp>return
Antwort.end()
Ende wenn
set upload=nothing
„Der Upload der XLS-Datei ist abgeschlossen. Lesen Sie als Nächstes die Daten aus der hochgeladenen XLS-Datei und schreiben Sie sie in die SQL-Datenbank.
strAddr=server.MapPath(uploadfiles/&filename)
set excelconn=server.createobject(adodb.connection)
excelconn.open Provider = Microsoft.Jet.OLEDB.4.0; Data Source = +strAddr+;Extended Properties='Excel 8.0;HDR=NO;IMEX=1'
set rs=server.CreateObject(adodb.recordset)
set rs1=server.CreateObject(adodb.recordset)
sql=select * from [Sheet1$]
rs.open sql,excelconn,1,3
Wenn nicht (rs.bof und rs.eof), dann
rs.movenext
tun, während nicht rs.eof
'response.Write(rs(1))
'response.End()
sql1=select * from member
rs1.open sql1,conn,1,3
rs1.addnew
Randomisieren
Benutzername=
Do While Len(username)<8 'Zufällige Passwortziffern
num1=CStr(Chr((57-48)*rnd+48)) '0~9
'num2=CStr(Chr((90-65)*rnd+65)) 'A~Z
num3=CStr(Chr((122-97)*rnd+97)) 'a~z
Benutzername=Benutzername&num1&num3
Schleife
rs1(Benutzername)=Benutzername
rs1(passwort)=bb0391ec1d7bda99'bamboo123456
wenn rs(0)<> dann
rs1(Firma)=rs(0)
Ende wenn
wenn rs(1)<> dann
rs1(realname)=rs(1)
Ende wenn
wenn rs(2)<> dann
rs1(sex)=sexn(rs(2))
Ende wenn
wenn rs(3)<> dann
rs1(prof)=rs(3)
Ende wenn
wenn rs(4)<> dann
rs1(tel)=rs(4)
Ende wenn
wenn rs(5)<> dann
rs1(mobil)=rs(5)
Ende wenn
wenn rs(6)<> dann
rs1(adresse)=rs(6)
Ende wenn
wenn rs(7)<> dann
rs1(area)=getclassdname(rs(7),area,cn)
Ende wenn
wenn rs(8)<> dann
rs1(city)=getclassdname(rs(8),area,cn)
Ende wenn
wenn rs(9)<> dann
rs1(fax)=rs(9)
Ende wenn
wenn rs(10)<> dann
rs1(comtype)=comtypem(rs(10))
Ende wenn
wenn rs(11)<> dann
rs1(operation)=rs(11)
Ende wenn
rs1(bestanden)=1
rs1(aktiviert)=1
rs1(lastlogintime)=now()
rs1.update
rs1.close
rs.movenext
Schleife
Ende wenn
rs.close()
setze rs=nichts
setze rs1=nichts
excelconn.Close()
setze excelconn=nichts
conn.close()
setze conn=nichts
Funktion sexn(str)
Wählen Sie Fallstr
Fall männlich
sexn=0
Fall weiblich
Geschlechtn=1
Ende auswählen
Endfunktion
functioncomtypem(str)
Wählen Sie Fallstr
Koffer Bambusprodukte
comtypem=0
Fall Bambusmaschinen
comtypem=1
Ende auswählen
Endfunktion
Funktion getclassdname(str,tablename,lang)
Wenn nicht IsNumeric(id), dann Funktion beenden
set rs2=conn.execute (wählen Sie die Top-1-ID aus & Tabellenname & wobei Klassenname wie „%&str&%“ lautet)
wenn nicht rs2.eof Dann
Wenn lang<> Dann
Wenn lang=cn Dann
getclassdname=getclassdname & rs2(0)
ElseIf lang=en Then
getclassdname=getclassdname & rs2(0)
Ende wenn
Ende wenn
anders
getclassdname=0
Ende wenn
rs2.close
Funktion beenden
%>
<table width=300 border=1 align=center cellpadding=0 Cellspacing=0 bordercolor=#CCCCCC>
<tr>
<th bordercolor=#F1F3F8 bgcolor=#999999 class=tscope=row> </th>
</tr>
<tr>
<th class=t Scope=row>Datei<% Response.write (filenameshow) %>Erfolgreich importiert! </th>
</tr>
<tr>
<th class=t Scope=row><a href=javascript:self.close() class=t>Fenster schließen</a></th>
</tr>
<tr>
<th class=t Scope=row><a href=1122.asp class=t>Return</a></th>
</tr>
</table>