Код ASP для импорта данных Excel в SQL Server немного запутан, поэтому вы можете найти его в соответствии со своими потребностями. Скопируйте код кода следующим образом:
<form action=insert.asp метод=post enctype=multipart/form-data name=form1 onSubmit=b1_onclick()>
<ширина таблицы=500 border=1 align=center cellpadding=0 cellpacing=0>
<тр>
<td colspan=2 bgcolor=#999999 class=t>Выбрать файл
</td>
</tr>
<тр>
<td colspan=2 class=t> </td>
</tr>
<тр>
<td width=126 class=t>Выбрать файл (excel)
</td>
<td width=368 class=t><label>
<входное имя=тип filexls=размер файла=35>
</label></td>
</tr>
<тр>
<td colspan=2 класс=t>
<метка>
<тип ввода=имя отправки=Отправить значение=Импортировать данные>
</метка>
<a href=1122.asp class=t>Возврат</a>
</td>
</tr>
</таблица>
</форма>
<!--#include virtual=/inc/clsdbctrl.asp-->
<!--#include virtual=/inc/function.asp-->
<%
тусклый upfile_5xSoft_Stream
Класс upload_5xSoft
dim Форма, Файл, Версия
Частный подкласс_инициализировать
dim iStart,iFileNameStart,iFileNameEnd,iEnd,vbEnter,iFormStart,iFormEnd,theFile
dim strDiv, mFormName, mFormValue, mFileName, mFileSize, mFilePath, iDivLen, mStr
Версия=Специальная программа загрузки Жэнь Сяна
если Request.TotalBytes<1, то выйти из Sub
установите Form=CreateObject(Scripting.Dictionary)
установите 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
в то время как iFormStart < iFormEnd
iStart=inString(iFormStart,имя=)
iEnd=inString(iStart+6,)
mFormName=subString(iStart+6,iEnd-iStart-6)
iFileNameStart=inString(iEnd+1,имя_файла=)
если iFileNameStart>0 и iFileNameStart<iFormEnd, то
iFileNameEnd=inString(iFileNameStart+10,)
mFileName=subString(iFileNameStart+10,iFileNameEnd-iFileNameStart-10)
iStart=inString(iFileNameEnd+1,vbEnter&vbEnter)
iEnd=inString(iStart+4,vbEnter&strDiv)
если iEnd>iStart, то
mFileSize=iEnd-iStart-4
еще
mFileSize=0
конец, если
установите theFile=new FileInfo
theFile.FileName=getFileName(mFileName)
theFile.FilePath=getFilePath(mFileName)
theFile.FileSize=mFileSize
theFile.FileStart=iStart+4
theFile.FormName=Имя формы
file.add mFormName, theFile
еще
iStart=inString(iEnd+1,vbEnter&vbEnter)
iEnd=inString(iStart+4,vbEnter&strDiv)
если iEnd>iStart, то
mFormValue=subString(iStart+4,iEnd-iStart-4)
еще
mFormValue=
конец, если
form.Add mFormName, mFormValue
конец, если
iFormStart=iformEnd+iDivLen
iFormEnd=inString(iformStart,strDiv)-1
идти
Конец субтитра
Частная функция subString(theStart,theLen)
Дими, c, стемп
upfile_5xSoft_Stream.Position=theStart-1
стебель=
для i=1 до theLen
если upfile_5xSoft_Stream.EOS, то Выход для
c = ascB (upfile_5xSoft_Stream.Read (1))
Если с > 127 Тогда
если upfile_5xSoft_Stream.EOS, то Выход для
стемп=stemp&Chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c)))
я=я+1
еще
стебель = стемп&Chr(c)
Конец, если
Следующий
subString=stemp
Конечная функция
Частная функция inString(theStart,varStr)
dim i,j,bt,theLen,str
ИнСтрока=0
Str=toByte(varStr)
theLen=LenB(Str)
для i = theStart до upfile_5xSoft_Stream.Size-theLen
если i>upfile_5xSoft_Stream.size, то выйдите из функции
upfile_5xSoft_Stream.Position=i-1
если AscB(upfile_5xSoft_Stream.Read(1))=AscB(midB(Str,1)) тогда
InString=я
для j=2 к Len
если upfile_5xSoft_Stream.EOS, то
inString=0
Выход для
конец, если
если AscB(upfile_5xSoft_Stream.Read(1))<>AscB(MidB(Str,j,1)) то
ИнСтрока=0
Выход для
конец, если
следующий
если InString<>0, то выйти из функции
конец, если
следующий
Конечная функция
Частный подкласс_Terminate
форма.RemoveAll
файл.RemoveAll
установить форму = ничего
установить файл = ничего
upfile_5xSoft_Stream.close
настроить upfile_5xSoft_Stream = ничего
Конец субтитра
Частная функция GetFilePath(FullPath)
Если ПолныйПуть <> Тогда
GetFilePath = left(FullPath,InStrRev(FullPath, /))
Еще
ПолучитьПутьФайла =
Конец, если
Конечная функция
Частная функция GetFileName(FullPath)
Если ПолныйПуть <> Тогда
GetFileName = Mid(FullPath,InStrRev(FullPath, /)+1)
Еще
ПолучитьИмяФайла =
Конец, если
Конечная функция
Частная функция toByte(Str)
тусклый я, iCode, c, iLow, iHigh
toByte=
Для i=1 To Len(Str)
с = середина (Str, i, 1)
iCode = Asc (с)
Если iCode<0, то iCode = iCode + 65535
Если iCode>255 Тогда
iLow = Влево(Hex(Asc(c)),2)
iHigh =Вправо(Hex(Asc(c)),2)
toByte = toByte & chrB(&H&iLow) & chrB(&H&iHigh)
Еще
toByte = toByte & chrB(AscB(c))
Конец, если
Следующий
Конечная функция
Конечный класс
Класс FileInfo
dim имя формы, имя файла, путь к файлу, размер файла, начало файла
Частный подкласс_инициализировать
ИмяФайла =
Путь к Файлу =
РазмерФайла = 0
ФилеСтарт= 0
ИмяФормы =
Конец субтитра
Открытая функция SaveAs(FullPath)
тусклый доктор,ErrorChar,я
Сохранить как=1
если обрезка (полный путь) = или FileSize = 0 или FileStart = 0 или FileName =, то выйдите из функции
если FileStart=0 или right(fullpath,1)=/, то выходим из функции
установите dr=CreateObject(Adodb.Stream)
др.Режим=3
доктор.Тип=1
Dr.Open
upfile_5xSoft_Stream.position=FileStart-1
upfile_5xSoft_Stream.copyto dr,FileSize
dr.SaveToFile FullPath,2
Др.Закрыть
установить др=ничего
СохранитьКак=0
конечная функция
Конечный класс
%>
<%
функция sqlstr (данные)
если не isnull(данные), то
sqlstr='& replace(data,','') &'
еще
sqlstr='& данные &'
конец, если
конечная функция
%>
<%
session.CodePage=936
Server.ScriptTimeOut=600000
установить загрузку = новая загрузка_5xsoft
установить file=upload.file(filexls)
%>
<%
если file.fileSize>0, то
имя_файла=год(сейчас)&месяц(сейчас)&день(сейчас)&час(сейчас)&минуту(сейчас)&секунду(сейчас)
имя_файла=имя_файла+.
имя_файлаконец=файл.имя_файла
filenameshow=file.имя_файла
filenameend=split(filenameend,.)
если filenameend(1)=xls, то
имя_файла=имя_файла&имя_файлаконец(1)
file.saveAs Server.mappath(uploadfiles/&имя файла)
еще
Неверный формат данных response.write!
response.write <a href=file_upload.asp>return
ответ.конец()
конец, если
установить файл = ничего
еще
Файл response.write не может быть пустым!
response.write <a href=file_upload.asp>return
ответ.конец()
Конец, если
установить загрузку = ничего
«Загрузка файла XLS завершена. Далее прочитайте данные из загруженного файла XLS и запишите их в базу данных SQL.
strAddr=server.MapPath(файлы загрузки/&имя файла)
установите excelconn=server.createobject(adodb.connection)
поставщик excelconn.open = Microsoft.Jet.OLEDB.4.0 Источник данных = +strAddr+;Расширенные свойства='Excel 8.0;HDR=NO;IMEX=1';
установите rs=server.CreateObject(adodb.recordset)
установите rs1=server.CreateObject(adodb.recordset)
sql=выбрать * из [Лист1$]
rs.open sql, excelconn, 1,3
если нет (rs.bof и rs.eof), то
rs.movenext
делай, пока не rs.eof
'response.Write(rs(1))
'ответ.Конец()
sql1=выбрать * из участника
rs1.open sql1,conn,1,3
rs1.addnew
Рандомизировать
имя пользователя=
Do While Len(имя пользователя)<8 'Случайные цифры пароля
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
имя пользователя = имя пользователя&номер1&номер3
петля
rs1(имя пользователя)=имя пользователя
rs1(пароль)=bb0391ec1d7bda99'bamboo123456
если rs(0)<> тогда
rs1(компания)=rs(0)
конец, если
если rs(1)<> тогда
rs1(настоящее имя)=rs(1)
конец, если
если rs(2)<> то
rs1(пол)=sexn(rs(2))
конец, если
если rs(3)<> то
rs1(проф)=rs(3)
конец, если
если rs(4)<> тогда
rs1(тел)=rs(4)
конец, если
если rs(5)<> тогда
rs1(мобильный)=rs(5)
конец, если
если rs(6)<> то
rs1(адрес)=rs(6)
конец, если
если rs(7)<> то
rs1(область)=getclassdname(rs(7),area,cn)
конец, если
если rs(8)<> то
rs1(город)=getclassdname(rs(8),area,cn)
конец, если
если rs(9)<> то
rs1(факс)=rs(9)
конец, если
если rs(10)<> тогда
rs1(comtype)=comtypem(rs(10))
конец, если
если rs(11)<> тогда
rs1(операция)=rs(11)
конец, если
rs1(пройдено)=1
rs1(активирован)=1
rs1(lastlogintime)=сейчас()
rs1.обновление
rs1.закрыть
rs.movenext
петля
конец, если
rs.close()
установить rs=ничего
установить rs1=ничего
Excelconn.Закрыть()
установить excelconn=ничего
конн.закрыть()
установить соединение = ничего
функция sexn(str)
выберите регистр регистра
чехол мужской
сексн=0
чехол женский
сексn=1
конец выбора
конечная функция
функцияcomtypem(str)
выберите регистр регистра
чехол для изделий из бамбука
комтип=0
чехол для бамбуковой техники
комтип=1
конец выбора
конечная функция
функция getclassdname(str,tablename,lang)
Если не IsNumeric(id), то выйдите из функции
set rs2=conn.execute (выберите первый идентификатор из & tablename и где имя класса, например '%&str&%')
если не rs2.eof Тогда
Если язык<> Тогда
Если lang=cn Тогда
getclassdname=getclassdname & rs2(0)
ИначеЕсли lang=en Тогда
getclassdname=getclassdname & rs2(0)
Конец, если
Конец, если
еще
getclassdname=0
конец, если
rs2.закрыть
Конечная функция
%>
<ширина таблицы=300 border=1 align=center cellpadding=0 cellpacing=0 bordercolor=#CCCCCC>
<тр>
<th bordercolor=#F1F3F8 bgcolor=#999999 class=tscope=row> </th>
</tr>
<тр>
<th class=tscope=row>Файл<% response.write (filenameshow) %>Успешно импортирован! </th>
</tr>
<тр>
<th class=tscope=row><a href=javascript:self.close() class=t>Закрыть окно</a></th>
</tr>
<тр>
<th class=tscope=row><a href=1122.asp class=t>Возврат</a></th>
</tr>
</таблица>