asp sql 导出 excel_(08)使用ASP实现批量导入功能(2)

上一节主介绍了数据库内部表的格式设定及其注意事项,在最后向大家提供了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:价格

3b9e5308a6b5ab8747d46ed132af3574.png

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

2f20405191bdaa21deb915665db356d2.png

其中:

①是项目编码

②是项目名称

③物资编码

④物资名称

⑤物资计量单位

⑥物资的数量

⑦物资的价格

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

6073ee2f3c50224b35ecf38b394cb98e.png

说明:

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

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

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

8483fbfa4e047e9db4f81f47f6eee49c.png

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

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

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

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

EXECL数据导入

session.CodePage=936

Server.ScriptTimeOut=12000

set upload=new upload_5xsoft

set file=upload.file("file1")

if file.fileSize>20480000 then '200K

%>

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 "返回"

response.end()

end if

set file=nothing

else

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

response.write "返回"

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

%>

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

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

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

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值