龙空技术网

(08)使用ASP实现批量导入功能(2)

景福之家 255

前言:

现在同学们对“asp复制文件”大约比较讲究,大家都想要学习一些“asp复制文件”的相关内容。那么小编也在网络上网罗了一些对于“asp复制文件””的相关文章,希望小伙伴们能喜欢,同学们快快来学习一下吧!

上一节主介绍了数据库内部表的格式设定及其注意事项,在最后向大家提供了2张图片,分别是存储导入数据的表的格式和存储数据后表的内容图片。下面首先简要介绍该数据库表内主要字段的存储格式及内容说明。

0. project_code:项目代码

1. unitproject_code:单位工程代码

2. project_name:项目名称

3. unitproject_name:单位工程名称

4. subproject_code:单项工程代码

5. subproject_name:单项工程名称

6. material_code:物资代码

7. material_name:物资名称

8. unit:单位

9. num:数量

10. price:价格

下图所示,是需要导入数据的电子表格模板。

其中:

①是项目编码

②是项目名称

③物资编码

④物资名称

⑤物资计量单位

⑥物资的数量

⑦物资的价格

下图是在模板上填写的要导入的数据。

说明:

上图所示的项目编码,实际使用时应按规则输入位数是12位,该示例为方便,仅填写6位。12位编码按不同位的数字表示不同的项目代码,如单位工作,单项工作和工序过程等,这是在编程设计之前就设定好的。

上图所示的项目名称,用“_”号分开成三段,按不同项目名称由ASP脚本区分开来,写入不同的数据表的字段中。详细的见下面的源代码。

下图是导入数据后的数据库表。

ASP实现写入功能在操作上需要分两步:

第一步利用ASP脚本将Excel文件数据读入,并存储到服务器的相应位置,形成一个新的Excel电子表格文件,与上传选中的电子表格文件一模一样;

第二步利用ASP脚本将这个新上传的Excel电子表格文件的内容逐行读出并写入到对应的数据库表中。

这两步由下面的代码实现,下面给出了导入数据ASP文件的原代码,仅供有兴趣的朋友参考:

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

<!--#include file="upload_5xsoft.inc"-->

<!--#include file="conn.asp"-->

<!--#include file="checkuser.asp"-->

<html xmlns="">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>EXECL数据导入</title>

<style type="text/css">

<!--

body,td,th {

font-size: 12px;

color: #666666;

}

-->

</style>

</head>

<body>

<%

session.CodePage=936

Server.ScriptTimeOut=12000

set upload=new upload_5xsoft

set file=upload.file("file1")

if file.fileSize>20480000 then '200K

%>

<script>

alert("您选择的文件过大!");

window.close();

</script>

<%

response.end

end if

if file.fileSize>0 and file.fileSize<20480000 then

filename=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)

filename=filename+"."

filenameend=file.filename

filenameend=split(filenameend,".")

if filenameend(1)="xls" then

filename=filename&filenameend(1)

file.saveAs Server.mappath("uploadfile/"&filename)

else

response.write "数据格式不对!"

response.write "<a href=upload.asp>返回</a>"

response.end()

end if

set file=nothing

else

response.write "文件不能为空或者文件超过大,超过系统限制!"

response.write "<a href=upload.asp>返回</a>"

response.end()

End if

set upload=nothing

'上传XLS文件结束,下面从上传的XLS文件中读取数据写入到SQL数据库

strAddr=server.MapPath("uploadfile/"&filename)

set excelconn=server.createobject("adodb.connection")

excelconn.open "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = "+strAddr+";Extended Properties='Excel 8.0;HDR=NO;IMEX=1'"

sql="select * from [Sheet1$] "

set rs0=server.CreateObject("adodb.recordset")

rs0.open sql,excelconn,1,1

set rs=server.CreateObject("adodb.recordset")

set rs1=server.CreateObject("adodb.recordset")

sql="select * from [Sheet1$]"

rs.open sql,excelconn,1,1

if not(rs.bof and rs.eof) then

rs.movenext

do while not rs.eof

sql1="select * from [Yyf_Material] where id is null"

rs1.open sql1,conn,1,3

rs1.addnew

rs1("project_code")=rs(0)

rs1("unitproject_code")=left(rs(0),4)

project_name=rs(1)

names=Split(project_name,"_")

rs1("project_name")=names(0)

rs1("unitproject_name")=names(1)

rs1("subproject_name")=names(2)

rs1("subproject_Code")=left(rs(0),6)

rs1("material_Code")=rs(2)

rs1("material_name")=rs(3)

rs1("unit")=rs(4)

rs1("num")=formatnumber(rs(5),3)

rs1("price")=formatnumber(rs(6),2)

rs1("switch")=true

rs1.update

rs1.close

rs.movenext

loop

end if

rs.close()

set rs=nothing

set rs1=nothing

excelconn.Close()

set excelconn=nothing

conn.close()

set conn=nothing

%>

<script>

alert("数据导入成功!");

window.parent.document.location.reload();

history.back();

</script>

</body>

</html>

这部分代码已经过测试,或者说现在正在使用,没有做任何技术处理。若需要交流,请关注,在评论区进行互动。

最后欢迎大家多提宝贵意见,以共同提高。

ASP脚本设计虽然古老,但仍然在广泛使用,尤其是小型系统,流量要求不高,但可实现相应功能的应用程序,尤其是小型企业,最为适用。比如说我设计的《生产经营管理信息系统》,就涵盖了物资管理的所有应用,包括入库,出库,经营分析与统计,形成报表,导入、导出数据,能为企业管理者提供相应的所有物耗数据。

计算机语言在飞速发展,可能我们永远也跟不上先进的,我认为我的学习是适用,学以至用即可。同时ASP简单易学,门槛低,如同当年的Basic语言一样,也可做为学习其它更流行语言的基础,也未偿不是一个好的途径。

下面几节,将着重介绍数据的导出操作并给出实现该功能的脚本源码。

标签: #asp复制文件