รหัสสำหรับ ASP เพื่อนำเข้าข้อมูล Excel ไปยัง SQL Server นั้นค่อนข้างยุ่ง ดังนั้นคุณจึงสามารถค้นหาได้ตามความต้องการของคุณ คัดลอกรหัสรหัสดังต่อไปนี้:
<การกระทำของฟอร์ม=insert.asp method=post enctype=multipart/form-data name=form1 onSubmit=b1_onclick()>
<ความกว้างของตาราง=500 เส้นขอบ=1 align=เซลล์กลาง=0 ระยะห่างระหว่างเซลล์=0>
<tr>
<td colspan=2 bgcolor=#999999 class=t>เลือกไฟล์
</td>
</tr>
<tr>
<td colspan=2 class=t> </td>
</tr>
<tr>
<td width=126 class=t>เลือกไฟล์ (excel)
</td>
<td width=368 class=t><label>
<ชื่ออินพุต=ชนิด filexls=ขนาดไฟล์=35>
</label></td>
</tr>
<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
คลาสอัพโหลด_5xSoft
แบบฟอร์มสลัว, ไฟล์, เวอร์ชัน
คลาสย่อยส่วนตัว_เริ่มต้น
สลัว iStart,iFileNameStart,iFileNameEnd,iEnd,vbEnter,iFormStart,iFormEnd,theFile
strDiv สลัว,mFormName,mFormValue,mFileName,mFileSize,mFilePath,iDivLen,mStr
Version=โปรแกรมอัพโหลดพิเศษของ Ren Xiang
ถ้า Request.TotalBytes<1 ให้ออกจาก Sub
ตั้งค่าแบบฟอร์ม = CreateObject (Scripting.Dictionary)
ตั้งค่าไฟล์ = 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 คำขอ BinaryRead (คำขอ TotalBytes)
vbEnter=Chr(13)&Chr(10)
iDivLen=inString(1,vbEnter)+1
strDiv=สตริงย่อย(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
สิ้นสุดถ้า
ตั้งค่า File=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)
ดิมิ, ค, สเต็ป
upfile_5xSoft_Stream.Position=theStart-1
ก้านดอก=
สำหรับ i=1 ถึง theLen
ถ้า upfile_5xSoft_Stream.EOS ให้ออกเพื่อ
c=ascB(upfile_5xSoft_Stream.อ่าน(1))
ถ้า c > 127 แล้ว
ถ้า upfile_5xSoft_Stream.EOS ให้ออกเพื่อ
Stemp=stemp&Chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c)))
ฉัน=ฉัน+1
อื่น
Stemp=ก้าว&Chr(c)
สิ้นสุดถ้า
ต่อไป
subString=stem
สิ้นสุดฟังก์ชัน
ฟังก์ชั่นส่วนตัว inString (theStart, varStr)
สลัว 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)) แล้ว
ในสตริง=i
สำหรับ j=2 ถึงเลน
ถ้า upfile_5xSoft_Stream.EOS แล้ว
ในสตริง=0
ออกเพื่อ
สิ้นสุดถ้า
ถ้า AscB(upfile_5xSoft_Stream.Read(1))<>AscB(MidB(Str,j,1)) แล้ว
ในสตริง=0
ออกเพื่อ
สิ้นสุดถ้า
ต่อไป
ถ้า InString<>0 ให้ออกจากฟังก์ชัน
สิ้นสุดถ้า
ต่อไป
ฟังก์ชันสิ้นสุด
Class_Terminate ย่อยส่วนตัว
แบบฟอร์ม RemoveAll
ไฟล์ RemoveAll
กำหนดรูปแบบ=ไม่มีอะไร
ตั้งค่าไฟล์=ไม่มีอะไร
upfile_5xSoft_Stream.ปิด
ตั้งค่า file_5xSoft_Stream=nothing
จบหมวดย่อย
ฟังก์ชั่นส่วนตัว GetFilePath (FullPath)
ถ้า FullPath <> จากนั้น
GetFilePath = ซ้าย (FullPath, InStrRev (FullPath, /))
อื่น
GetFilePath=
สิ้นสุดถ้า
สิ้นสุดฟังก์ชัน
ฟังก์ชั่นส่วนตัว GetFileName (FullPath)
ถ้า FullPath <> จากนั้น
GetFileName = กลาง(FullPath,InStrRev(FullPath, /)+1)
อื่น
GetFileName=
สิ้นสุดถ้า
สิ้นสุดฟังก์ชัน
ฟังก์ชั่นส่วนตัว toByte(Str)
หรี่ i, iCode, c, iLow, iHigh
ถึงไบต์=
สำหรับ i=1 ถึง Len(Str)
c=กลาง(Str,i,1)
iCode =Asc(c)
ถ้า iCode<0 ดังนั้น iCode = iCode + 65535
หาก iCode>255 แล้ว
iLow = ซ้าย(Hex(Asc(c)),2)
iHigh =ขวา(ฐานสิบหก(Asc(c)),2)
toByte = toByte & chrB(&H&iLow) & chrB(&H&iHigh)
อื่น
toByte = toByte & chrB(AscB(c))
สิ้นสุดถ้า
ต่อไป
สิ้นสุดฟังก์ชัน
จบคลาส
ข้อมูลไฟล์คลาส
FormName, FileName, FilePath, FileSize, FileStart จางลง
คลาสย่อยส่วนตัว_เริ่มต้น
ชื่อไฟล์=
เส้นทางไฟล์ =
ขนาดไฟล์ = 0
ไฟล์สตาร์ท= 0
ชื่อแบบฟอร์ม =
จบหมวดย่อย
ฟังก์ชั่นสาธารณะ SaveAs(FullPath)
dr มัว, ErrorChar, i
บันทึกเป็น=1
ถ้า trim(fullpath)= หรือ FileSize=0 หรือ FileStart=0 หรือ FileName= ให้ออกจากฟังก์ชัน
ถ้า FileStart=0 หรือ right(fullpath,1)=/ ให้ออกจากฟังก์ชัน
ตั้งค่า dr = CreateObject (Adodb.Stream)
ดร.โหมด=3
ดร.ประเภท=1
ดร.เปิด
upfile_5xSoft_Stream.position=FileStart-1
upfile_5xSoft_Stream.copyไปที่ dr,FileSize
dr.SaveToFile FullPath,2
ดร.ปิด
ตั้งค่า dr=nothing
บันทึกเป็น=0
ฟังก์ชั่นสิ้นสุด
จบคลาส
-
-
ฟังก์ชั่น sqlstr (ข้อมูล)
ถ้าไม่ใช่ isnull (ข้อมูล) แล้ว
sqlstr='& แทนที่ (ข้อมูล,','') &'
อื่น
sqlstr='& ข้อมูล &'
สิ้นสุดถ้า
ฟังก์ชั่นสิ้นสุด
-
-
session.CodePage=936
Server.ScriptTimeOut=600000
ตั้งค่าการอัพโหลด=ใหม่ upload_5xsoft
ตั้งค่าไฟล์=upload.file(filexls)
-
-
ถ้า file.fileSize>0 แล้ว
ชื่อไฟล์=ปี(ตอนนี้)&เดือน(ตอนนี้)&วัน(ตอนนี้)&ชั่วโมง(ตอนนี้)&นาที(ตอนนี้)&วินาที(ตอนนี้)
ชื่อไฟล์=ชื่อไฟล์+.
filenameend=file.filename
filenameshow=file.ชื่อไฟล์
filenameend=split(ชื่อไฟล์end,.)
ถ้า filenameend(1)=xls แล้ว
ชื่อไฟล์=ชื่อไฟล์&ชื่อไฟล์สิ้นสุด(1)
file.saveAs Server.mappath (อัพโหลดไฟล์/&ชื่อไฟล์)
อื่น
รูปแบบข้อมูล response.write ไม่ถูกต้อง!
response.write <a href=file_upload.asp>ส่งคืน
การตอบกลับ.end()
สิ้นสุดถ้า
ตั้งค่าไฟล์=ไม่มีอะไร
อื่น
ไฟล์ response.write ต้องไม่ว่างเปล่า!
response.write <a href=file_upload.asp>ส่งคืน
การตอบกลับ.end()
จบถ้า
ตั้งค่าการอัพโหลด=ไม่มีอะไร
'การอัปโหลดไฟล์ 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=เลือก * จาก [Sheet1$]
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.เพิ่มใหม่
สุ่ม
ชื่อผู้ใช้=
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
ชื่อผู้ใช้=ชื่อผู้ใช้&num1&num3
วนซ้ำ
rs1(ชื่อผู้ใช้)=ชื่อผู้ใช้
rs1(รหัสผ่าน)=bb0391ec1d7bda99'bamboo123456
ถ้า rs(0)<> แล้ว
rs1(บริษัท)=อาร์เอส(0)
สิ้นสุดถ้า
ถ้า rs(1)<> แล้ว
rs1(ชื่อจริง)=อาร์เอส(1)
สิ้นสุดถ้า
ถ้า rs(2)<> แล้ว
rs1(เพศ)=sexn(อาร์เอส(2))
สิ้นสุดถ้า
ถ้า rs(3)<> แล้ว
rs1(ศาสตราจารย์)=อาร์เอส(3)
สิ้นสุดถ้า
ถ้า rs(4)<> แล้ว
rs1(โทร)=อาร์เอส(4)
สิ้นสุดถ้า
ถ้า rs(5)<> แล้ว
rs1(มือถือ)=อาร์เอส(5)
สิ้นสุดถ้า
ถ้า rs(6)<> แล้ว
rs1(ที่อยู่)=อาร์เอส(6)
สิ้นสุดถ้า
ถ้า rs(7)<> แล้ว
rs1(พื้นที่)=getclassdname(rs(7),พื้นที่,cn)
สิ้นสุดถ้า
ถ้า rs(8)<> แล้ว
rs1(เมือง)=getclassdname(rs(8),พื้นที่,cn)
สิ้นสุดถ้า
ถ้า rs(9)<> แล้ว
rs1(แฟกซ์)=อาร์เอส(9)
สิ้นสุดถ้า
ถ้า rs(10)<> แล้ว
rs1(comtype)=comtypem(อาร์เอส(10))
สิ้นสุดถ้า
ถ้า rs(11)<> แล้ว
rs1(ปฏิบัติการ)=อาร์เอส(11)
สิ้นสุดถ้า
rs1(ผ่าน)=1
rs1(เปิดใช้งานแล้ว)=1
rs1(เวลาเข้าสู่ระบบครั้งล่าสุด)=ตอนนี้()
rs1.อัพเดต
rs1.ปิด
rs.movenext
วนซ้ำ
สิ้นสุดถ้า
rs.ปิด()
ตั้งค่า rs=nothing
ตั้งค่า rs1=ไม่มีอะไร
excelconn.ปิด()
ตั้งค่า excelconn=ไม่มีอะไร
con.ปิด()
ตั้งค่า conn=ไม่มีอะไร
ฟังก์ชั่น sexn (str)
เลือกกรณี str
กรณีชาย
เพศ=0
กรณีเพศหญิง
เพศ=1
สิ้นสุดการเลือก
ฟังก์ชั่นสิ้นสุด
functioncomtypem (str)
เลือกกรณี str
กรณีผลิตภัณฑ์จากไม้ไผ่
ประเภทสินค้า=0
เครื่องจักรไม้ไผ่กรณี
ประเภทสินค้า=1
สิ้นสุดการเลือก
ฟังก์ชั่นสิ้นสุด
ฟังก์ชั่น getclassdname (str, ชื่อตาราง, lang)
ถ้าไม่ใช่ IsNumeric(id) ให้ออกจากฟังก์ชัน
set rs2=conn.execute (เลือก 1 id อันดับแรกจาก & tablename & โดยที่ classname เช่น '%&str&%')
ถ้าไม่ใช่ rs2.eof งั้น
ถ้า lang<> แล้ว
ถ้า lang=cn แล้ว
getclassdname=getclassdname & rs2(0)
ElseIf lang=en จากนั้น
getclassdname=getclassdname & rs2(0)
สิ้นสุดถ้า
สิ้นสุดถ้า
อื่น
getclassdname=0
สิ้นสุดถ้า
rs2.ปิด
ฟังก์ชันสิ้นสุด
-
<ความกว้างของตาราง=300 border=1 align=center cellpadding=0 cellspacing=0 bordercolor=#CCCCCC>
<tr>
<th bordercolor=#F1F3F8 bgcolor=#999999 class=t ขอบเขต=แถว> </th>
</tr>
<tr>
<th class=t scope=row>ไฟล์<% response.write (ชื่อไฟล์) %>นำเข้าสำเร็จแล้ว! </th>
</tr>
<tr>
<th class=t scope=row><a href=javascript:self.close() class=t>ปิดหน้าต่าง</a></th>
</tr>
<tr>
<th class=t scope=row><a href=1122.asp class=t>ส่งคืน</a></th>
</tr>
</ตาราง>