admin 管理员组

文章数量: 887021


2024年1月22日发(作者:jsp入门教程简单博客系统)

excel导入sql数据库方法

在网上看到很多朋友在咨询excel导入sql数据库方法,前段时间做项目时客户有这个功能需求,所以今天给大家分享一下实现的方法。先介绍一个思路:将excel文件上传到服务器,然后预览数据,可以对数据进行筛选,点击“导入”后将选择的数据导入到sql数据库中,最后把上传的文件从服务器上删除,释放空间。好了,接下来我们就按步骤来讲解excel导入sql数据库方法。

1、excel文件上传到服务器

我们采用函数的实现,代码如下:

call UploadFile(fName,FilePath)

Function UploadFile(fName,FilePath)

UpLoadFileType= "x l s | " //设置允许上传的文件类型

FileTypeErr=True

set upload=new upload_file

for each formName in

set file=(formName)

fName=me

FileExt=t

if ze<100 then

""

()

end if

UpLoadFile_ID=split(UpLoadFileType,"|")

for i=0 to ubound(UpLoadFile_ID)

if UpLoadFile_ID(i)=FileExt then

FileTypeErr=False

exit for

end if

next

if FileTypeErr=True then

""

()

end if

mapurl=trim(fName)

File h(mapurl) //保存文件

set file=nothing

next

set upload=nothing

FilePath=h(mapurl) //将上传的文件路径赋值给FilePath

End Function

2、预览数据,选择数据导入到sql数据库中

我们采用函数的实现,代码如下:

call ExcelToSql(fName,FilePath)

Function ExcelToSql(ExName,FilePath,Mainbody)

Dim conn_xls

Dim StrConn_xls

Dim Rs

Dim Sql

Dim i

ExTName = "Sheet1"

On Error Resume Next

Set conn_xls =Object("tion")

StrConn_xls="Driver={Microsoft Excel Driver (*.xls)};DBQ="&

h(""&ExName)

conn_ StrConn_xls

Set rs_xls = Object("set")

Sql="select * from ["&ExTName&"$]"

rs_ Sql,conn_xls ,3,3

If Err Then

Set conn_xls = Nothing

set rs_xls=nothing

Delete_UpLoadFile(FilePath)

""

()

End If

if rs_ then

Set conn_xls = Nothing

set rs_xls=nothing

Delete_UpLoadFile(FilePath)

""

()

else

i=1

mainbody=mainbody & "

cellspacing=""1"" cellpadding=""0"" class=""border"">"

mainbody=mainbody & "

"

do while not rs_

'由于excel在处理数据类型时,前面无法带0,补0操作

if len(Rs_xls(0))<10 then

cc=""

aa=10-len(Rs_xls(0))

for c=1 to aa

cc=cc & "0"

next

end if

payrollcode=cc & Rs_xls(0)

'如果导入的excel数据列有变化,请对程序做适当的修改

mainbody=mainbody & "

onMouseOut=""ame='tdbg'""

onMouseOver=""ame='tdbg2'"">"

mainbody=mainbody & "

"

mainbody=mainbody & "

"

mainbody=mainbody & "

"

mainbody=mainbody & "

"

mainbody=mainbody & "

"

mainbody=mainbody & "

"

i = i +1

rs_xt

Loop

end if

rs_

set rs_xls=nothing

conn_

set StrConn_xls=nothing

mainbody=mainbody & "

"

mainbody=mainbody & "

align=""center""> 

align=""center"">编号

姓名

align=""center"">性别

省份

type=""checkbox"" name=""ID"&i&""" value=""ON"" checked>

"&payrollcode&"

type=""hidden"" name=""payrollcode"&i&""" value="&payrollcode&">

"&Rs_xls(1)&"

type=""hidden"" name=""cname"&i&""" value="""&trim(Rs_xls(1))&""">

"&Rs_xls(2)&"

type=""hidden"" name=""***"&i&""" value="""&trim(Rs_xls(2))&""">

"&Rs_xls(3)&"

type=""hidden"" name=""shengfen"&i&""" value="""&trim(Rs_xls(3))&""">

colspan=""10""> 总数:"&i-1&"

name=""B1"" value="" 导 入 "" class=""Inputbtn"">

"

mainbody=mainbody & "

type=""hidden"" name=""FilePath"" value="&FilePath&">"

End Function

3、删除上传的excel文件

利用FSO组件删除

call Delete_UpLoadFile(FilePath)

Function Delete_UpLoadFile(FilePath)

Set Fso=object("stemobject")

If ists(FilePath) then

File FilePath,true

End If

End Function

4、完整的excel导入sql数据库方法

if request("Action")="upload" then

call UploadFile(fName,FilePath)

call ExcelToSql(fName,FilePath)

call Delete_UpLoadFile(FilePath)

ct ""

end if

需要注意的几个地方:

1、请参照文件的格式进行数据导入,如果excel数据列有增加,可以对程序做适当的修改

2、如果在导入数据时,提示“文件格式有误”,请检查ExTName指定的名称和excel文件里的sheet名称是否一致;excel文件是否是标准的excel文件格式。

3、确保FilePath在几个函数之间传输时,值不会丢失

4、该程序文件和excel文件在同一目录下,如果不在同一目录,在上传的路径地方做适当的修改

5、确保everyone对该目录有读写权限,这样在上传和删除文件时不会报错

6、在导入中文数据时,可能会出现乱码,中文变问号等情况,可以在读取数据的页面头加入下面的编码:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

<%ge=936%>

好了,上面就是excel导入sql数据库方法,点击下载:excel导入sql数据库源码。


本文标签: 文件 数据 导入 上传 数据库