ASP+模板生成Word、Excel、html
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
用模板生成excel、word最大优点: '欢迎与我交流和学习 '作者:幸福的子弹 'blog:http://mysheji.com/blog 'e-mail:zhaojiangang@gmail.com 'qq:37294812 '----------------------------------------------------------------------------- '开启容错机制 on error resume next '功能,检测服务器是否支持指定组件 function object_install(strclassstring) on error resume next object_install=false dim xtestobj set xtestobj=server.createobject(strclassstring) if -2147221005 <> err then object_install=true set xtestobj=nothing end function if object_install("scripting.filesystemobject")=false then response.write " 对不起,您的空间不支持fso组件,请与管理员联系! "response.end end if if object_install("adodb.stream")=false then response.write " 对不起,您的空间不支持adodb.stream功能,请与管理员联系! "response.end end if '----------------------------------------------------------------------------- '函数名称:readtextfile '作用:利用adodb.stream对象来读取文本文件 '参数:fileurl文件相对路径,filecharset:文件编码 function readfromtextfile (fileurl,filecharset)'函数 dim str set stm=server.createobject("adodb.stream") stm.type=2 '指定或返回的数据类型, stm.mode=3 '指定打开模式,现在为可以读写模式,类似于word的只读或锁定功能 stm.charset=filecharset stm.open stm.loadfromfile server.mappath(fileurl) str=stm.readtext readfromtextfile=str end function '----------------------------------------------------------------------------- '函数名称:writetotextfile '作用:利用adodb.stream对象来写入文本文件 sub writetotextfile(fileurl,str,filecharset) '方法 set stm=server.createobject("adodb.stream") stm.type=2 stm.mode=3 stm.charset=filecharset stm.open stm.writetext str stm.savetofile server.mappath(fileurl),2 stm.flush end sub '----------------------------------------------------------------------------- '功能:自动创建文件夹 '创建一级或多级目录,可以创建不存在的根目录 '参数:要创建的目录名称,可以是多级 '返回逻辑值,true成功,false失败 '创建目录的根目录从当前目录开始 function createmultifolder(byval cfolder) dim objfso,phcreatefolder,createfolderarray,createfolder dim i,ii,createfoldersub,phcreatefoldersub,blinfo blinfo = false createfolder = cfolder on error resume next set objfso = server.createobject("scripting.filesystemobject") if err then err.clear() exit function end if createfolder = replace(createfolder,"","/") if left(createfolder,1)="/" then createfolder = right(createfolder,len(createfolder)-1) end if if right(createfolder,1)="/" then createfolder = left(createfolder,len(createfolder)-1) end if createfolderarray = split(createfolder,"/") for i = 0 to ubound(createfolderarray) createfoldersub = "" for ii = 0 to i createfoldersub = createfoldersub & createfolderarray(ii) & "/" next phcreatefoldersub = server.mappath(createfoldersub) if not objfso.folderexists(phcreatefoldersub) then objfso.createfolder(phcreatefoldersub) end if next if err then err.clear() else blinfo = true end if createmultifolder = blinfo end function '点击下载提示 function downloadfile(strfile) strfilename = server.mappath(strfile) response.buffer = true response.clear set s = server.createobject("adodb.stream") s.open s.type = 1 on error resume next set fso = server.createobject("scripting.filesystemobject") if not fso.fileexists(strfilename) then response.write(" error:" & strfilename & " does not exist") error:" & err.description & "") 网站异常出错,请与管理员联系,谢谢! "response.end end if %>
<% 生成excel文档: <%'创建文件 dim templatename,templatechar,filepath,filename,filecharset,templatecontent templatename="template/template_excel.htm" '模板名字,支持带路径,如"/moban/moban1.htm"或"temp/moban1.htm" templatechar="gb2312" '模板文本的编码 filepath="files/excel/" '生成文件保存的路径,当前目录请留空,其他目录,路径必须以“/”结尾 filename="book1.xls" '即将生成的文件名 createmultifolder(filepath) '这一句用来判断文件夹是否存在,没有则自动创建,支持n级目录 filecharset="gb2312" '打算生成的文本编码 '读取指定的模板内容 templatecontent=readfromtextfile(templatename,templatechar) '以下就交给你来替换模板内容了 templatecontent=replace(templatecontent,"{$websitename}","蓝色理想") templatecontent=replace(templatecontent,"{$username}","幸福的子弹") templatecontent=replace(templatecontent,"{$now}",now()) '其他内容...... '最终调用函数来生成文件 call writetotextfile(filepath&filename,templatecontent,filecharset) '最后关闭adodb.stream对象 stm.flush stm.close set stm=nothing downloadfile(filepath&filename) %>
'创建文件 dim templatename,templatechar,filepath,filename,filecharset,templatecontent templatename="template/template_html.htm" '模板名字,支持带路径,如"/moban/moban1.htm"或"temp/moban1.htm" templatechar="gb2312" '模板文本的编码 filepath="files/html/" '生成文件保存的路径,当前目录请留空,其他目录,路径必须以“/”结尾 filename="untitled-1.htm" '即将生成的文件名 createmultifolder(filepath) '这一句用来判断文件夹是否存在,没有则自动创建,支持n级目录 filecharset="gb2312" '打算生成的文本编码 '读取指定的模板内容 templatecontent=readfromtextfile(templatename,templatechar) '以下就交给你来替换模板内容了 templatecontent=replace(templatecontent,"{$websitename}","蓝色理想") templatecontent=replace(templatecontent,"{$username}","幸福的子弹") templatecontent=replace(templatecontent,"{$now}",now()) '其他内容...... '最终调用函数来生成文件 call writetotextfile(filepath&filename,templatecontent,filecharset) '最后关闭adodb.stream对象 stm.flush stm.close set stm=nothing response.write("恭喜您,"&filename&"已经生成,点击查看") %> 打包下载[upload=rar]201073141210-2.rar[/upload] 该文章在 2010/7/3 14:12:15 编辑过 |
关键字查询
相关文章
正在查询... |