Le code permettant à ASP d'importer des données Excel dans SQL Server est un peu compliqué, vous pouvez donc le rechercher en fonction de vos besoins. Copiez le code comme suit :
<form action=insert.asp method=post enctype=multipart/form-data name=form1 onSubmit=b1_onclick()>
<table width=500 border=1 align=center cellpadding=0 cellpacing=0>
<tr>
<td colspan=2 bgcolor=#999999 class=t>Sélectionner un fichier
</td>
</tr>
<tr>
<td colspan=2 class=t> </td>
</tr>
<tr>
<td width=126 class=t>Sélectionner un fichier (excel)
</td>
<td width=368 class=t><étiquette>
<nom d'entrée=filexls type=taille du fichier=35>
</label></td>
</tr>
<tr>
<td colspan=2 classe=t>
<étiquette>
<input type=submit name=Submit value=Importer des données>
</étiquette>
<a href=1122.asp class=t>Retour</a>
</td>
</tr>
</table>
</form>
<!--#include virtual=/inc/clsdbctrl.asp-->
<!--#include virtual=/inc/function.asp-->
<%
atténuer upfile_5xSoft_Stream
Classe upload_5xSoft
dim Formulaire, Fichier, Version
Sous-classe privée_Initialize
dim iStart, iFileNameStart, iFileNameEnd, iEnd, vbEnter, iFormStart, iFormEnd, theFile
dim strDiv, mFormName, mFormValue, mFileName, mFileSize, mFilePath, iDivLen, mStr
Version = Programme de téléchargement spécial de Ren Xiang
si Request.TotalBytes <1 alors quittez le sous
définir 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)
vbEntrée=Chr(13)&Chr(10)
iDivLen=inString(1,vbEnter)+1
strDiv=sousChaîne(1,iDivLen)
iFormStart=iDivLen
iFormEnd=inString(iformStart,strDiv)-1
tandis que iFormStart < iFormEnd
iStart=inString(iFormStart,nom=)
iFin=inString(iStart+6,)
mFormName=subString(iStart+6,iEnd-iStart-6)
iFileNameStart=inString(iEnd+1,filename=)
si iFileNameStart>0 et iFileNameStart<iFormEnd alors
iFileNameEnd=inString(iFileNameStart+10,)
mFileName=subString(iFileNameStart+10,iFileNameEnd-iFileNameStart-10)
iDébut=inString(iFileNameEnd+1,vbEnter&vbEnter)
iEnd=inString(iStart+4,vbEnter&strDiv)
si iEnd>iStart alors
mFileSize=iEnd-iStart-4
autre
mTailleFichier=0
finir si
définir theFile = nouveau FileInfo
theFile.FileName=getFileName(mFileName)
theFile.FilePath=getFilePath(mFileName)
theFile.FileSize = mFileSize
theFile.FileStart=iStart+4
theFile.FormName=FormName
fichier.ajouter mFormName,theFile
autre
iDébut=inString(iEnd+1,vbEnter&vbEnter)
iEnd=inString(iStart+4,vbEnter&strDiv)
si iEnd>iStart alors
mFormValue=sousChaîne(iStart+4,iEnd-iStart-4)
autre
mFormValue=
finir si
form.Add mFormName, mFormValue
finir si
iFormStart=iformEnd+iDivLen
iFormEnd=inString(iformStart,strDiv)-1
wend
Fin du sous-marin
Sous-chaîne de fonction privée (theStart, theLen)
dimi, c, temp
upfile_5xSoft_Stream.Position=theStart-1
temp=
pour i=1 à laLen
si upfile_5xSoft_Stream.EOS alors quittez pour
c=ascB(upfile_5xSoft_Stream.Read(1))
Si c > 127 Alors
si upfile_5xSoft_Stream.EOS alors quittez pour
stemp=stemp&Chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c)))
je=i+1
autre
temp=stemp&Chr(c)
Fin si
Suivant
sous-Chaîne=stemp
Fin de fonction
Fonction privée inString(theStart,varStr)
dim je, j, bt, theLen, str
ChaîneIn=0
Str=toByte(varStr)
leLen=LenB(Str)
pour i=theStart vers upfile_5xSoft_Stream.Size-theLen
si i>upfile_5xSoft_Stream.size alors quittez la fonction
upfile_5xSoft_Stream.Position=i-1
si AscB(upfile_5xSoft_Stream.Read(1))=AscB(midB(Str,1)) alors
InString=i
pour j=2 à laLen
si upfile_5xSoft_Stream.EOS alors
inString=0
Sortie pour
finir si
si AscB(upfile_5xSoft_Stream.Read(1))<>AscB(MidB(Str,j,1)) alors
ChaîneIn=0
Quitter pour
finir si
suivant
si InString<>0 alors fonction de sortie
finir si
suivant
Fonction de fin
Sous-classe privée_Terminate
formulaire.RemoveAll
fichier.RemoveAll
définir le formulaire = rien
définir le fichier = rien
upfile_5xSoft_Stream.close
set upfile_5xSoft_Stream = rien
Fin du sous-marin
Fonction privée GetFilePath(FullPath)
Si Chemin Complet <> Alors
GetFilePath = gauche (FullPath, InStrRev (FullPath, /))
Autre
ObtenirFilePath =
Fin si
Fin de fonction
Fonction privée GetFileName (FullPath)
Si Chemin Complet <> Alors
GetFileName = milieu (FullPath, InStrRev (FullPath, /)+1)
Autre
GetFileName =
Fin si
Fin de fonction
Fonction privée toByte(Str)
faible je,iCode,c,iLow,iHigh
toByte=
Pour i=1 À Len(Str)
c=milieu(Str,i,1)
iCode =Asc(c)
Si iCode<0 Alors iCode = iCode + 65535
Si iCode>255 Alors
iBas = Gauche (Hex (Asc (c)), 2)
iHaut =Droite(Hex(Asc(c)),2)
toByte = toByte & chrB(&H&iLow) & chrB(&H&iHigh)
Autre
toByte = toByte & chrB(AscB(c))
Fin si
Suivant
Fin de fonction
Fin du cours
Informations sur le fichier de classe
dim FormName, FileName, FilePath, FileSize, FileStart
Sous-classe privée_Initialize
Nom du fichier =
Chemin du fichier =
Taille du fichier = 0
Départ Fichier= 0
NomFormulaire =
Fin du sous-marin
Fonction publique SaveAs (FullPath)
dim dr, ErrorChar, je
Enregistrer sous = 1
si trim(fullpath)= ou FileSize=0 ou FileStart=0 ou FileName= alors quittez la fonction
si FileStart=0 ou right(fullpath,1)=/ alors quittez la fonction
set dr=CreateObject(Adodb.Stream)
dr.Mode=3
dr.Type=1
dr.Ouvrir
upfile_5xSoft_Stream.position=FileStart-1
upfile_5xSoft_Stream.copyto dr, Taille du fichier
dr.SaveToFile Chemin complet,2
dr.Fermer
définir dr = rien
Enregistrer sous = 0
fonction de fin
Fin du cours
%>
<%
fonction sqlstr (données)
sinon c'est nul (données) alors
sqlstr='& remplacer(données,','') &'
autre
sqlstr='& données &'
finir si
fonction de fin
%>
<%
session.CodePage=936
Serveur.ScriptTimeOut=600000
définir upload=nouveau upload_5xsoft
set file=upload.file(filexls)
%>
<%
si fichier.fileSize>0 alors
nom de fichier = année (maintenant) & mois (maintenant) & jour (maintenant) & heure (maintenant) & minute (maintenant) & seconde (maintenant)
nom de fichier=nom de fichier+.
filenameend=file.filename
filenameshow=file.filename
nomfichierend=split(nomfichierend,.)
si filenameend(1)=xls alors
nom de fichier=nom de fichier&nom de fichierfin(1)
fichier.saveAs Server.mappath(uploadfiles/&filename)
autre
Le format des données de réponse.write est incorrect !
réponse.write <a href=file_upload.asp>retour
réponse.end()
finir si
définir le fichier = rien
autre
Le fichier réponse.write ne peut pas être vide !
réponse.write <a href=file_upload.asp>retour
réponse.end()
Terminer si
définir le téléchargement = rien
« Le téléchargement du fichier XLS est terminé. Ensuite, lisez les données du fichier XLS téléchargé et écrivez-les dans la base de données SQL.
strAddr=server.MapPath(uploadfiles/&filename)
définir excelconn=server.createobject(adodb.connection)
fournisseur excelconn.open = Microsoft.Jet.OLEDB.4.0; Source de données = +strAddr+;Propriétés étendues='Excel 8.0;HDR=NO;IMEX=1'
définir rs=server.CreateObject(adodb.recordset)
définir rs1=server.CreateObject(adodb.recordset)
sql=sélectionner * à partir de [Feuille1$]
rs.open sql,excelconn,1,3
sinon (rs.bof et rs.eof) alors
rs.movenext
faire sans rs.eof
'réponse.Write(rs(1))
'réponse.Fin()
sql1=sélectionner * du membre
rs1.open sql1, conn, 1,3
rs1.addnew
Randomiser
nom d'utilisateur =
Do While Len(username)<8 'Chiffres de mot de passe aléatoires
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
nom d'utilisateur=nom d'utilisateur&num1&num3
boucle
rs1(nom d'utilisateur)=nom d'utilisateur
rs1 (mot de passe) = bb0391ec1d7bda99'bamboo123456
si rs(0)<> alors
rs1(entreprise)=rs(0)
finir si
si rs(1)<> alors
rs1(vrai nom)=rs(1)
finir si
si rs(2)<> alors
rs1(sexe)=sexen(rs(2))
finir si
si rs(3)<> alors
rs1(prof)=rs(3)
finir si
si rs(4)<> alors
rs1(tél)=rs(4)
finir si
si rs(5)<> alors
rs1(mobile)=rs(5)
finir si
si rs(6)<> alors
rs1(adresse)=rs(6)
finir si
si rs(7)<> alors
rs1(zone)=getclassdname(rs(7),zone,cn)
finir si
si rs(8)<> alors
rs1(ville)=getclassdname(rs(8),zone,cn)
finir si
si rs(9)<> alors
rs1(fax)=rs(9)
finir si
si rs(10)<> alors
rs1(comtype)=comtypem(rs(10))
finir si
si rs(11)<> alors
rs1(opération)=rs(11)
finir si
rs1 (réussi) = 1
rs1 (activé) = 1
rs1 (dernière heure de connexion) = maintenant ()
rs1.mise à jour
rs1.fermer
rs.movenext
boucle
finir si
rs.close()
définir rs = rien
définir rs1 = rien
excelconn.Fermer()
définir excelconn = rien
conn.close()
définir conn = rien
fonction sexen(str)
sélectionner le cas str
cas masculin
sexen=0
cas femelle
sexen=1
fin de la sélection
fonction de fin
fonctioncomtypem(str)
sélectionner le cas str
cas de produits en bambou
type de compteur = 0
cas de machines en bambou
typem=1
fin de la sélection
fonction de fin
fonction getclassdname(str,tablename,lang)
Si ce n'est pas IsNumeric (id), alors quittez la fonction
set rs2=conn.execute (sélectionnez le premier identifiant de & tablename & où classname comme '%&str&%')
sinon rs2.eof Alors
Si lang<> Alors
Si lang=cn Alors
getclassdname=getclassdname & rs2(0)
SinonSi lang=fr Alors
getclassdname=getclassdname & rs2(0)
Fin si
Fin si
autre
getclassdname=0
finir si
rs2.fermer
Fonction de fin
%>
<table width=300 border=1 align=center cellpadding=0 cellpacing=0 bordercolor=#CCCCCC>
<tr>
<th bordercolor=#F1F3F8 bgcolor=#999999 class=t scope=row> </th>
</tr>
<tr>
<th class=t scope=row>Fichier<% Response.write (filenameshow) %>Importé avec succès ! </th>
</tr>
<tr>
<th class=t scope=row><a href=javascript:self.close() class=t>Fermer la fenêtre</a></th>
</tr>
<tr>
<th class=t scope=row><a href=1122.asp class=t>Retour</a></th>
</tr>
</table>