• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ASP+模板生成Word、Excel、html的代码第1/2页
    大多数都是采用Excel.Application(http://www.blueidea.com/tech/program/2006/3547.asp)组件来生成
    发现容易出错,而且对于大多数和我一样的菜鸟来说,比较麻烦,考虑到前些天用ASP+模板+adodb.stream生成静态页面的办法,经过多次尝试,终于掌握了一种用ASP+模板生成Excel和word的新的办法,先分享如下: 

    用模板生成Excel、Word最大优点: 

           Word、Excel文档样式易于控制和调整,以往用Excel.Application来生成Excel、Word,需要写很多代码来控制排版的样式,用模版几乎不受任何限制,只需要打开word或Excel,编辑文档,选择"文件->另存为web页",即可方便的做好模板 ,用office生成的模板要比直接在DW中做好模板更加符合office偏好,生成后文件样式可与原word、Excel格式99%一样,因此建议大家用office(office97~office2003)直接来生成模板框架。 

    主要的代码 
    function.asp
    复制代码 代码如下:

    %
    '欢迎与我交流和学习
    '作者:幸福的子弹
    '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 "div style='font-size:12px;color:#333;height:20px;line-height:20px;border:1px solid #DDCF8F;padding:6px;background:#FFFFED;font-family:verdana'>对不起,您的空间不支持FSO组件,请与管理员联系!/div>"
        Response.End
    end if
    if object_install("adodb.stream")=false then
        Response.Write "div style='font-size:12px;color:#333;height:20px;line-height:20px;border:1px solid #DDCF8F;padding:6px;background:#FFFFED;font-family:verdana'>对不起,您的空间不支持adodb.stream功能,请与管理员联系!/div>"
        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("h1>Error:/h1>"  strFilename  " does not existp>")
             Response.End
         end if
         Set f = fso.GetFile(strFilename)
         intFilelength = f.size
         s.LoadFromFile(strFilename)
         if err then
             Response.Write("h1>Error: /h1>"  err.Description  "p>")
             Response.End
         end if
         Response.AddHeader "Content-Disposition", "attachment; filename="  f.name
         Response.AddHeader "Content-Length", intFilelength
         Response.CharSet = "UTF-8"
         Response.ContentType = "application/octet-stream"
         Response.BinaryWrite s.Read
         Response.Flush
         s.Close
         Set s = Nothing
    End Function
    '-----------------------------------------------------------------------------
    If Err Then
        err.Clear
        Set conn = Nothing
        Response.Write "div style='font-size:12px;color:#333;height:20px;line-height:20px;border:1px solid #DDCF8F;padding:6px;background:#FFFFED;font-family:verdana'>网站异常出错,请与管理员联系,谢谢!/div>"
        Response.End
    End If
    %>

    生成Word文档:
    复制代码 代码如下:

    %
    '创建文件
    dim templateName,templatechar,filepath,filename,fileCharset,templateContent
       templateName="template/template_word.htm"        '模板名字,支持带路径,如"/moban/moban1.htm"或"temp/moban1.htm"
       templatechar="gb2312"                      '模板文本的编码
       filepath="files/word/"                     '生成文件保存的路径,当前目录请留空,其他目录,路径必须以“/”结尾
       filename="Doc1.doc"                           '即将生成的文件名
       CreateMultiFolder(filepath)                '这一句用来判断文件夹是否存在,没有则自动创建,支持n级目录
       fileCharset="gb2312"                       '打算生成的文本编码
    '读取指定的模板内容
    templateContent=ReadFromTextFile(templateName,templatechar)   
    '以下就交给你来替换模板内容了
    templateContent=replace(templateContent,"{$websiteName}","蓝色理想")
    templateContent=replace(templateContent,"{$userName}","幸福的子弹")
    templateContent=replace(templateContent,"{$now}",Now())
    '其他内容......
    '最终调用函数来生成文件         
    Call WriteToTextFile(filepathfilename,templateContent,fileCharset)   
    '最后关闭adodb.stream对象
    stm.flush
    stm.Close
    set stm=nothing
    downloadFile(filepathfilename)
    %>

    12下一页阅读全文
    您可能感兴趣的文章:
    • php Smarty模板生成html文档的方法
    • JavaScript和ActionScript的交互实现代码
    • PHP JSON格式数据交互实例代码详解
    • thinkPHP的Html模板标签使用方法
    • 解析Android中webview和js之间的交互
    • PHP与javascript实现变量交互的示例代码
    • 多种方式实现JS调用后台方法进行数据交互
    • extjs中form与grid交互数据(record)的方法
    • C#.NET采用HTML模板发送电子邮件完整实例
    • 基于HTML模板和JSON数据的JavaScript交互(移动端)
    上一篇:asp+javascript实现404页的处理转换
    下一篇:天枫常用的ASP函数封装如下
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    ASP+模板生成Word、Excel、html的代码第1/2页 ASP+,模板,生成,Word,Excel,