ASP+FSO 根据模板批量生成HTML?

2020 年 7 月 13 日1880

 问题点数:0回复次数:1

ASP+FSO 根据模板批量生成HTML?

ASP+FSO 根据模板批量生成HTML?

添加一个型号根据这个型号生成HTML 我已经实现了!但是如何批量生成HTML呢? 数据库里有一些型号是从EXCEL导入了!

数据库 表:cla(产品分类表)

字段:ID(自动编号) cla_s(分类),typename(这类产品下的型号生产的HTML所存放的文件夹,默认都是STOCK)

表:Example(HTML的模板表)

字段:ID(自动编号)E_memo(HTML的模板)

表:data(存放所有的产品信息)

字段:ID(自动编号) cla(产品所属分类) namee(产品型号英文),name(产品型号中文),path(图片存放路径)。。。。

。。。。。。N_Fname(生成的HTNL的文件名,),cpath(生成的HTML文件存放的文件夹)

两个文件

第一个:plhtml.asp 页面里列出了开始ID (statID)结束ID(endID)和HTML的模板(name="Example" size="1")

第二个:aotuhtml.asp批量生成HTML的文件(代码一会贴出来)

思路:从plhtml.asp 把 (statID)结束ID(endID)和HTML的模板的值传递到aotuhtml.asp页面。然后由aotuhtml.asp页面批量生

成HTML。根据开始ID和结束ID,从第一条开始(就是开始ID statID),如果N_Fname为空(为空表示还没有生成HTML),就生成

HTML,然后判断下一条(还是判断N_Fname字段是否为空)。否则,就输出:所有产品都已生成HTML,不用在次生成。

aotuhtml.asp 代码如下:

<!--#include file="include/Conn.asp"-->

<!--#include file="include/char.asp"-->

<!--#include file="include/setup.asp"-->

<%

function makefilename(fname)

fname = time() & "-" & ztitles

fname = replace(fname,":","")

fname = replace(fname,"PM","")

fname = replace(fname,"AM","")

fname = replace(fname,"上午","")

fname = replace(fname,"下午","")

makefilename=fname & ".html"

end function

dim

zstatID,zendID,zcla,ztitles,ztitlee,picinfo,picarr,strpic,strwidth,strheight,zppz,zfzz,znfz,zslz,zbzz,zpicdemos,zjg,

zpx,zN_Fname

dim sql

dim rs

dim from

dim sql1

dim rs1

dim typename1

zstatID=trim(request.Form("statID"))

zendID=trim(request.Form("endID"))

sql="select * from data where id="&zstatID

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

rs.open sql,conn,1,1

zN_Fname=rs("N_Fname")

i=0

if rs.bof and rs.eof then

response.write("<script>alert('对不起,你输入的开始ID和结束ID不正确,请重新输

入!');location.href='javascript:history.back()';</script>")

else

if zN_Fname="" then

do while not rs.eof

i=i+1

zcla=rs("cla")

ztitles=rs("namee")

ztitlee=rs("names")

zppz=rs("ppz")

zfzz=rs("fzz")

znfz=rs("nfz")

zslz=rs("slz")

zbzz=rs("bzz")

zpicdemos=rs("picdemos")

zjg=rs("jg")

zpx=rs("px")

sql1="select * from cla where id="&zcla

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

rs1.open sql1,conn,1,1

filepath=rs1("typename")

set rs = server.CreateObject("ADODB.RecordSet")

StrSql = "select E_Memo from Example where id="+request("Example")

set rs = conn.Execute (StrSql)

fname = makefilename(now())

pencat=rs("E_Memo")

pencat=replace(pencat,"H_Title",ztitles)

pencat=replace(pencat,"H_Ppz",zppz)

pencat=replace(pencat,"H_Fzz",zfzz)

pencat=replace(pencat,"H_Nfz",znfz)

pencat=replace(pencat,"H_Slz",zslz)

pencat=replace(pencat,"H_bzz",zbzz)

pencat=replace(pencat,"H_Memo",zpicdemos)

pencat=replace(pencat,"H_strpic",strpic)

Set fso = Server.CreateObject("Scripting.FileSystemObject")

Set fout = fso.CreateTextFile(server.mappath("..\"&filePath& "\" & fname))

fout.WriteLine pencat

fout.close

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

sql="select * from data where id="&zstatID

rs.open sql,conn,1,3

rs("cpath")=filepath

rs("N_Fname")=fname

rs("date")=now()

rs.update

rs.movenext

loop

response.write("文件更新完毕!共 <font color=#ff0000>"&i&"</font> 个文件")

rs1.close

set rs1=nothing

rs.close

set rs=nothing

conn.close

set conn=nothing

end if

rs.close

set rs=nothing

conn.close

set conn=nothing

end if

%>

各位大哥 大姐们 帮我看一下,我估计是我的循环那里写错了!帮忙指点一下 谢谢了!我已经搞了3个通宵了!还是不行!

搜索更多相关主题的帖子:

数据库 文件夹 EXCEL 英文 中文 

0 0