El código para que ASP importe datos de Excel a SQL Server es un poco complicado, por lo que puede buscarlo según sus necesidades. Copie el código de código de la siguiente manera:
<formulario acción=insert.asp método=post enctype=multipart/form-data nombre=form1 onSubmit=b1_onclick()>
<ancho de tabla = 500 borde = 1 align = centro relleno de celda = 0 espacio entre celdas = 0>
<tr>
<td colspan=2 bgcolor=#999999 class=t>Seleccionar archivo
</td>
</tr>
<tr>
<td colspan=2 clase=t> </td>
</tr>
<tr>
<td width=126 class=t>Seleccionar archivo (excel)
</td>
<td ancho=368 clase=t><etiqueta>
<nombre de entrada=tipo de archivoxls=tamaño de archivo=35>
</label></td>
</tr>
<tr>
<td colspan=2 clase=t>
<etiqueta>
<tipo de entrada=enviar nombre=Enviar valor=Importar datos>
</etiqueta>
<a href=1122.asp class=t>Regresar</a>
</td>
</tr>
</tabla>
</formulario>
<!--#include virtual=/inc/clsdbctrl.asp-->
<!--#include virtual=/inc/function.asp-->
<%
atenuar upfile_5xSoft_Stream
Carga de clase_5xSoft
formulario, archivo, versión tenue
Subclase privada_Inicializar
dim iStart,iFileNameStart,iFileNameEnd,iEnd,vbEnter,iFormStart,iFormEnd,elArchivo
dim strDiv,mFormName,mFormValue,mFileName,mFileSize,mFilePath,iDivLen,mStr
Versión = Programa de carga especial de Ren Xiang
si Request.TotalBytes<1 entonces salga de Sub
establecer formulario = Crear objeto (Scripting.Dictionary)
establecer Archivo=CrearObjeto(Scripting.Dictionary)
set upfile_5xSoft_Stream=CrearObjeto(Adodb.Stream)
upfile_5xSoft_Stream.mode=3
upfile_5xSoft_Stream.type=1
upfile_5xSoft_Stream.open
upfile_5xSoft_Stream.write Solicitud.BinaryRead(Solicitud.TotalBytes)
vbEntrar=Chr(13)&Chr(10)
iDivLen=enCadena(1,vbEntrar)+1
strDiv=subCadena(1,iDivLen)
iFormStart=iDivLen
iFormEnd=inString(iformStart,strDiv)-1
mientras iFormStart < iFormEnd
iStart=enCadena(iFormStart,nombre=)
iEnd=enCadena(iInicio+6,)
mFormName=subcadena(iInicio+6,iEnd-iInicio-6)
iFileNameStart=inString(iEnd+1,nombre de archivo=)
si iFileNameStart>0 y iFileNameStart<iFormEnd entonces
iFileNameEnd=inString(iFileNameStart+10,)
mFileName=subString(iFileNameStart+10,iFileNameEnd-iFileNameStart-10)
iStart=inString(iFileNameEnd+1,vbEnter&vbEnter)
iEnd=inString(iStart+4,vbEnter&strDiv)
si iEnd>iStart entonces
mFileSize=iEnd-iStart-4
demás
mFileSize=0
terminar si
establecer theFile = nueva información de archivo
theFile.FileName=getFileName(mFileName)
theFile.FilePath=getFilePath(mFileName)
theFile.FileSize=mFileSize
theFile.FileStart=iInicio+4
theFile.FormName=Nombredelformulario
file.add mFormName, el archivo
demás
iInicio=enCadena(iEnd+1,vbEnter&vbEnter)
iEnd=inString(iStart+4,vbEnter&strDiv)
si iEnd>iStart entonces
mFormValue=subcadena(iInicio+4,iEnd-iInicio-4)
demás
mFormValue=
terminar si
formulario.Agregar mFormName,mFormValue
terminar si
iFormStart=iformEnd+iDivLen
iFormEnd=inString(iformStart,strDiv)-1
encaminarse a
Subtítulo final
Subcadena de función privada (theStart, theLen)
dimi, c, temp
upfile_5xSoft_Stream.Position=elInicio-1
temp =
para i=1 a theLen
si upfile_5xSoft_Stream.EOS entonces salga para
c=ascB(upfile_5xSoft_Stream.Read(1))
Si c > 127 Entonces
si upfile_5xSoft_Stream.EOS entonces salga para
temp=temp&Chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c)))
yo=yo+1
demás
temp=temp&Chr(c)
Terminar si
Próximo
subString=templo
Función final
Función privada en cadena (theStart,varStr)
tenue i,j,bt,theLen,str
En cadena=0
Cadena=toByte(varStr)
laLen=LenB(Str)
para i=theStart a upfile_5xSoft_Stream.Size-theLen
si i>upfile_5xSoft_Stream.size entonces salga de la función
upfile_5xSoft_Stream.Position=i-1
si AscB(upfile_5xSoft_Stream.Read(1))=AscB(midB(Str,1)) entonces
En cadena=i
para j=2 a la Len
si upfile_5xSoft_Stream.EOS entonces
en cadena=0
Salir por
terminar si
si AscB(upfile_5xSoft_Stream.Read(1))<>AscB(MidB(Str,j,1)) entonces
En cadena=0
Salir por
terminar si
próximo
si InString<>0 entonces sale de la función
terminar si
próximo
Función final
Subclase privada_Terminar
formulario.RemoveAll
archivo.RemoveAll
establecer formulario = nada
establecer archivo = nada
upfile_5xSoft_Stream.cerrar
configurar upfile_5xSoft_Stream=nada
Subtítulo final
Función privada GetFilePath (FullPath)
Si ruta completa <> entonces
GetFilePath = izquierda(RutaCompleta,InStrRev(RutaCompleta, /))
Demás
ObtenerRutaArchivo =
Terminar si
Función final
Función privada GetFileName (FullPath)
Si ruta completa <> entonces
GetFileName = mid(RutaCompleta,InStrRev(RutaCompleta, /)+1)
Demás
Obtener nombre de archivo =
Terminar si
Función final
Función privada toByte(Str)
tenue i,iCode,c,iBajo,iAlto
aByte=
Para i=1 a Len(Str)
c=medio(Str,i,1)
Código i =Asc(c)
Si iCode<0 Entonces iCode = iCode + 65535
Si iCode>255 entonces
iBajo = Izquierda(Hex(Asc(c)),2)
iAlto = Derecha(Hex(Asc(c)),2)
toByte = toByte & chrB(&H&iBajo) & chrB(&H&iAlto)
Demás
toByte = toByte & chrB(AscB(c))
Terminar si
Próximo
Función final
Fin de clase
Información de archivo de clase
dim Nombre del formulario, Nombre del archivo, Ruta del archivo, Tamaño del archivo, Inicio del archivo
Subclase privada_Inicializar
Nombre de archivo =
RutaDeArchivo =
Tamaño de archivo = 0
Inicio de archivo = 0
Nombre del formulario =
Subtítulo final
Función pública Guardar como (ruta completa)
dim dr,ErrorChar,i
Guardar como=1
si trim(fullpath)= o FileSize=0 o FileStart=0 o FileName= entonces salga de la función
si FileStart=0 o right(fullpath,1)=/ entonces salga de la función
establecer dr=CrearObjeto(Adodb.Stream)
modo dr.=3
dr.Tipo=1
dr.abierto
upfile_5xSoft_Stream.position=FileStart-1
upfile_5xSoft_Stream.copyto dr,Tamaño de archivo
dr.SaveToFile Ruta completa,2
dr.Cerrar
establecer dr = nada
Guardar como=0
función final
Fin de clase
%>
<%
función sqlstr(datos)
si no es nulo (datos), entonces
sqlstr='& reemplazar(datos,','') &'
demás
sqlstr='& datos &'
terminar si
función final
%>
<%
sesión.CodePage=936
Servidor.ScriptTimeOut=600000
configurar carga = nueva carga_5xsoft
establecer archivo=cargar.archivo(archivoxls)
%>
<%
si archivo.fileSize>0 entonces
nombre de archivo = año (ahora) y mes (ahora) y día (ahora) y hora (ahora) y minuto (ahora) y segundo (ahora)
nombre de archivo=nombre de archivo+.
nombredearchivoend=archivo.nombredearchivo
nombredearchivoshow=archivo.nombredearchivo
fin del nombre del archivo = dividir (fin del nombre del archivo,.)
si nombredearchivo(1)=xls entonces
nombre de archivo = nombre de archivo y fin de nombre de archivo (1)
file.saveAs Server.mappath(cargararchivos/&nombre de archivo)
demás
¡El formato de datos de respuesta.escribir es incorrecto!
respuesta.escribir <a href=file_upload.asp>regresar
respuesta.fin()
terminar si
establecer archivo = nada
demás
¡El archivo Response.write no puede estar vacío!
respuesta.escribir <a href=file_upload.asp>regresar
respuesta.fin()
terminar si
configurar cargar = nada
'Se completa la carga del archivo XLS. A continuación, lea los datos del archivo XLS cargado y escríbalos en la base de datos SQL.
strAddr=server.MapPath(cargararchivos/&nombre de archivo)
establecer excelconn=servidor.createobject(adodb.conexión)
Proveedor excelconn.open = Microsoft.Jet.OLEDB.4.0; Fuente de datos = +strAddr+;Propiedades extendidas='Excel 8.0;HDR=NO;IMEX=1'
establecer rs=servidor.CreateObject(adodb.recordset)
establecer rs1=servidor.CreateObject(adodb.recordset)
sql=seleccionar * de [Hoja1$]
rs.open sql,excelconn,1,3
si no (rs.bof y rs.eof) entonces
rs.movenext
hacer mientras no rs.eof
'respuesta.Escribir(rs(1))
'respuesta.Fin()
sql1=seleccionar * del miembro
rs1.open sql1,conexión,1,3
rs1.añadirnuevo
Aleatorizar
nombre de usuario =
Hacer mientras Len(nombre de usuario)<8 'Dígitos de contraseña aleatorios
número1=CStr(Chr((57-48)*rnd+48)) '0~9
'num2=CStr(Chr((90-65)*rnd+65)) 'A~Z
número3=CStr(Chr((122-97)*rnd+97)) 'a~z
nombre de usuario = nombre de usuario & num1 & num3
bucle
rs1(nombre de usuario)=nombre de usuario
rs1(contraseña)=bb0391ec1d7bda99'bamboo123456
si rs(0)<> entonces
rs1(empresa)=rs(0)
terminar si
si rs(1)<> entonces
rs1(nombre real)=rs(1)
terminar si
si rs(2)<> entonces
rs1(sexo)=sexn(rs(2))
terminar si
si rs(3)<> entonces
rs1(prof)=rs(3)
terminar si
si rs(4)<> entonces
rs1(tel)=rs(4)
terminar si
si rs(5)<> entonces
rs1(móvil)=rs(5)
terminar si
si rs(6)<> entonces
rs1(dirección)=rs(6)
terminar si
si rs(7)<> entonces
rs1(área)=getclassdname(rs(7),área,cn)
terminar si
si rs(8)<> entonces
rs1(ciudad)=getclassdname(rs(8),área,cn)
terminar si
si rs(9)<> entonces
rs1(fax)=rs(9)
terminar si
si rs(10)<> entonces
rs1(tipocom)=tipocom(rs(10))
terminar si
si rs(11)<> entonces
rs1(operación)=rs(11)
terminar si
rs1(aprobado)=1
rs1(activado)=1
rs1(última hora de inicio de sesión)=ahora()
rs1.actualización
rs1.cerrar
rs.movenext
bucle
terminar si
rs.cerrar()
establecer rs = nada
establecer rs1 = nada
excelconn.Cerrar()
establecer excelconn=nada
conexión.cerrar()
establecer conexión = nada
función sexon(cadena)
seleccione cadena de mayúsculas y minúsculas
caso masculino
sexon=0
caso femenino
sexon=1
finalizar seleccionar
función final
funcióncomtypem(str)
seleccione cadena de mayúsculas y minúsculas
caso de productos de bambú
tipocom = 0
caso de maquinaria de bambú
comtipom=1
finalizar seleccionar
función final
función getclassdname(cadena,nombre de tabla,idioma)
Si no es IsNumeric(id), entonces salga de la función
set rs2=conn.execute (seleccione el id principal de & nombre de tabla y donde nombre de clase como '%&str&%')
si no es rs2.eof entonces
Si idioma<> Entonces
Si lang=cn entonces
getclassdname=obtenerclassdname & rs2(0)
ElseIf lang=en Entonces
getclassdname=obtenerclassdname & rs2(0)
Terminar si
Terminar si
demás
obtener nombre de clase = 0
terminar si
rs2.cerrar
Función final
%>
<ancho de tabla=300 borde=1 align=center cellpadding=0 espacio entre celdas=0 bordercolor=#CCCCCC>
<tr>
<th bordercolor=#F1F3F8 bgcolor=#999999 class=t alcance=fila> </th>
</tr>
<tr>
<th class=t alcance=fila>Archivo<% respuesta.write (filenameshow) %>¡Importado correctamente! </th>
</tr>
<tr>
<th class=t alcance=fila><a href=javascript:self.close() class=t>Cerrar ventana</a></th>
</tr>
<tr>
<th class=t alcance=fila><a href=1122.asp class=t>Regresar</a></th>
</tr>
</tabla>