• 输出EXCEL文件的通用函数,很实用


    下面这段小程序,用于把一个SQL的SELECT查询出的结果输出为EXCEL格式文件,这个程序你只要设好用于取得一个记录集的SQL的SELECT查询语句和一个文件名,程序就能输出EXCEL格式文件了,这个程序一共由三个文件构成,第一个文件的文件名为:toexcel.asp是主文件,内容如下:
    <% 
    set conn=opendb("EMSC")
    '前面是设置数据源并链接到数据库,请自行书写相关语句,此处略过 

    sql
    ="select * from sys_user" '这里是要输出EXCEL的查询语句,如 "SESECT * FORM CAI WHERE 性别='女'" 
    filename="excel.xls" ' 要输出的EXCEL文件的文件名, 你只要改以上两句就行了,其它的都不要改. 

    '你只要修改以上两变量就行了.其它的我都做好了. 

    call toexcel(FILENAME,sql) 
    set conn=nothing 

    function ReadText(FileName) '这是一个用于读出文件的函数 
    set adf=server.CreateObject("Adodb.Stream"
    with adf 
    .Type
    =2 
    .LineSeparator
    =10 
    .Open 
    .LoadFromFile (server.MapPath(FileName)) 
    .Charset
    ="GB2312" 
    .Position
    =2 
    ReadText
    =.ReadText 
    .Cancel() 
    .Close() 
    end with 
    set ads=nothing 
    end function 

    sub SaveText(FileName,Data) '这是一个用于写文件的函数 
    set fs= createobject("scripting.filesystemobject"
    set ts=fs.createtextfile(server.MapPath(FileName),true
    ts.writeline(data) 
    ts.close 
    set ts=nothing 
    set fs=nothing 
    end sub 

    sub toexcel(filename,sql) '这是一个根据SQL语句和FILENAME生成EXCEL文件 
    Set rs=Server.CreateObject("ADODB.RecordSet"
    rs.Open sql,conn,
    1,3 
    TOEXCELLR
    ="<table width='100%'><tr >" 
    set myfield=rs.fields 
    dim fieldname(50
    for i=0 to myfield.count-1 
    toexcellr
    =toexcellr&"<td class=xl24>"&MYFIELD(I).NAME&"</td>" 
    fieldname(i)
    =myfield(i).name 
    if myfield(i).type=135 then datename=datename&myfield(i).name&"," 
    next 
    toexcellr
    =toexcellr&"</tr>" 
    do while not rs.eof 
    toexcellr
    =toexcellr&"<tr>" 
    for i=0 to myfield.count-1 
    if instr(datename,fieldname(i)&",")<>0 then 
    if not isnull(rs(fieldname(i))) then 
    TOEXCELLR
    =TOEXCELLR&"<td class=xl25 ><p align='left'>"&formatdatetime(rs(fieldname(i)),2)&"</p></td>" 
    else 
    TOEXCELLR
    =TOEXCELLR&"<td class=xl25 ><p align='left'> </p></td>" 
    end if 
    else 
    TOEXCELLR
    =TOEXCELLR&"<td class=xl24 >"&rs(fieldname(i))&"</td>" 
    end if 
    next 
    toexcellr
    =toexcellr&"</tr>" 
    rs.movenext 
    loop 
    toexcellr
    =toexcellr&"</table>" 
    tou
    =readtext("tou.txt"
    di
    =readtext("di.txt"
    toexcellr
    =tou&toexcellr&di 
    call savetext(filename,toexcellr) 
    end sub 
    %> 
    <html> 
    <head> 
    <meta http-equiv="refresh" content="3;URL=<%=filename%>"> 
    <meta http-equiv="Content-Language" content="en-us"> 
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
    <title>正在生成EXLCE文件</title> 
    </head> 
    <BODY> 
    正在生成EXLCE文件
    </BODY> 
    </HTML> 

    ********第二个文件名为:di.txt 内容如下:

    <table x:str border=0 cellpadding=0 cellspacing=0 width=288 style='border-collapse:
    collapse;table-layout:fixed;216pt'>
    <![if supportMisalignedColumns]>
    <tr height=0 style='display:none'>
    <td width=72 style='54pt'></td>
    <td width=72 style='54pt'></td>
    <td width=72 style='54pt'></td>
    <td width=72 style='54pt'></td>
    </tr>
    <![endif]>
    </table>

    ************第三个文件的文件名为:tou.TXT 内容如下:

    <html xmlns:o="urn:schemas-microsoft-com:office:office"
    xmlns:x="urn:schemas-microsoft-com:office:excel"
    xmlns="http://www.w3.org/TR/REC-html40">

    <head>
    <meta http-equiv=Content-Type content="text/html; charset=GB2312">
    <meta name=ProgId content=Excel.Sheet>
    <meta name=Generator content="Microsoft Excel 9">
    <link rel=File-List href="./222.files/filelist.xml">
    <link rel=Edit-Time-Data href="./222.files/editdata.mso">
    <link rel=OLE-Object-Data href="./222.files/oledata.mso">
    <!--[if gte mso 9]><xml>
    <o:DocumentProperties>
    <o:Author>xky</o:Author>
    <o:LastAuthor>xky</o:LastAuthor>
    <o:Created>2002-05-27T17:51:00Z</o:Created>
    <o:LastSaved>2002-06-22T10:03:03Z</o:LastSaved>
    <o:Company>zydn</o:Company>
    <o:Version>9.2812</o:Version>
    </o:DocumentProperties>
    <o:OfficeDocumentSettings>
    <o:DownloadComponents/>
    <o:LocationOfComponents HRef="file:///E:/msowc.cab"/>
    </o:OfficeDocumentSettings>
    </xml><![endif]-->
    <style>
    <!--table
    {mso-displayed-decimal-separator:"\.";
    mso-displayed-thousand-separator:"\,";}
    @page
    {margin:1.0in .75in 1.0in .75in;
    mso-header-margin:.5in;
    mso-footer-margin:.5in;}
    tr
    {mso-height-source:auto;
    mso-ruby-visibility:none;}
    col
    {mso-width-source:auto;
    mso-ruby-visibility:none;}
    br
    {mso-data-placement:same-cell;}
    .style0
    {mso-number-format:General;
    text-align:general;
    vertical-align:bottom;
    white-space:nowrap;
    mso-rotate:0;
    mso-background-source:auto;
    mso-pattern:auto;
    color:windowtext;
    font-size:9.0pt;
    font-weight:400;
    font-style:normal;
    text-decoration:none;
    font-family:宋体;
    mso-generic-font-family:auto;
    mso-font-charset:134;
    border:none;
    mso-protection:locked visible;
    mso-style-name:常规;
    mso-style-id:0;}
    td
    {mso-style-parent:style0;
    padding-top:1px;
    padding-right:1px;
    padding-left:1px;
    mso-ignore:padding;
    color:windowtext;
    font-size:9.0pt;
    font-weight:400;
    font-style:normal;
    text-decoration:none;
    font-family:宋体;
    mso-generic-font-family:auto;
    mso-font-charset:134;
    mso-number-format:General;
    text-align:general;
    vertical-align:bottom;
    border:none;
    mso-background-source:auto;
    mso-pattern:auto;
    mso-protection:locked visible;
    white-space:nowrap;
    mso-rotate:0;}
    .xl24
    {mso-style-parent:style0;
    border:.5pt solid windowtext;}
    .xl25
    {mso-style-parent:style0;
    mso-number-format:"Long Date";
    text-align:left;
    border:.5pt solid windowtext;}
    ruby
    {ruby-align:left;}
    rt
    {color:windowtext;
    font-size:9.0pt;
    font-weight:400;
    font-style:normal;
    text-decoration:none;
    font-family:宋体;
    mso-generic-font-family:auto;
    mso-font-charset:134;
    mso-char-type:none;
    display:none;}
    -->
    </style>
    <!--[if gte mso 9]><xml>
    <x:ExcelWorkbook>
    <x:ExcelWorksheets>
    <x:ExcelWorksheet>
    <x:Name>Sheet1</x:Name>
    <x:WorksheetOptions>
    <x:DefaultRowHeight>225</x:DefaultRowHeight>
    <x:Print>
    <x:ValidPrinterInfo/>
    <x:PaperSizeIndex>9</x:PaperSizeIndex>
    <x:HorizontalResolution>-3</x:HorizontalResolution>
    <x:VerticalResolution>0</x:VerticalResolution>
    </x:Print>
    <x:Selected/>
    <x:Panes>
    <x:Pane>
    <x:Number>3</x:Number>
    <x:ActiveRow>24</x:ActiveRow>
    <x:ActiveCol>5</x:ActiveCol>
    </x:Pane>
    </x:Panes>
    <x:ProtectContents>False</x:ProtectContents>
    <x:ProtectObjects>False</x:ProtectObjects>
    <x:ProtectScenarios>False</x:ProtectScenarios>
    </x:WorksheetOptions>
    </x:ExcelWorksheet>
    <x:ExcelWorksheet>
    <x:Name>Sheet2</x:Name>
    <x:WorksheetOptions>
    <x:DefaultRowHeight>225</x:DefaultRowHeight>
    <x:ProtectContents>False</x:ProtectContents>
    <x:ProtectObjects>False</x:ProtectObjects>
    <x:ProtectScenarios>False</x:ProtectScenarios>
    </x:WorksheetOptions>
    </x:ExcelWorksheet>
    <x:ExcelWorksheet>
    <x:Name>Sheet3</x:Name>
    <x:WorksheetOptions>
    <x:DefaultRowHeight>225</x:DefaultRowHeight>
    <x:ProtectContents>False</x:ProtectContents>
    <x:ProtectObjects>False</x:ProtectObjects>
    <x:ProtectScenarios>False</x:ProtectScenarios>
    </x:WorksheetOptions>
    </x:ExcelWorksheet>
    </x:ExcelWorksheets>
    <x:WindowHeight>6600</x:WindowHeight>
    <x:WindowWidth>12000</x:WindowWidth>
    <x:WindowTopX>0</x:WindowTopX>
    <x:WindowTopY>1395</x:WindowTopY>
    <x:ProtectStructure>False</x:ProtectStructure>
    <x:ProtectWindows>False</x:ProtectWindows>
    </x:ExcelWorkbook>
    </xml><![endif]-->
    </head>

    <body link=blue vlink=purple>

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    即将到来的“分布式云”(DPaaS):分布式计算+ DB +存储即服务
    【玩转MLS系列】基础教程
    【云速建站】微信公众平台中维护IP白名单
    基于华为云对话机器人技能平台的规则模板概述
    云享专家倪升武:微服务架构盛行的时代,你需要了解点 Spring Boot
    Python一秒搭建ftp服务器,帮助你在局域网共享文件
    华为担纲建设基础软硬件国家新一代AI开放创新平台
    基于华为云区块链服务快速部署和搭建链上应用
    protobuf代码生成
    python的str()和repr()的区别
  • 原文地址:https://www.cnblogs.com/Athrun/p/1126248.html
Copyright © 2020-2023  润新知