首页 >> 技术文章 >> 详细内容
使用asp程序导出excel或者word的方法

在某些时候我们需要把WEB上的数据获取到本地电脑上,这些数据一般都是表格的形式的。如果一条一条的复制的话,在数据上千上万条的时候,那简直就是一个庞大的工程,那有没有简单的方法,通过程序直接到出成excel或者word呢?答案是肯定的,以下我们仅举例ASP程序,其他程序方法相似。

1、首先制作一个EXCEL表格,画好表,设好格式,数据先制作一行即可。
2、EXCEL文件另存为HTML格式。
3、把该文件扩展名改为ASP,每行进行修改,把双引号全部改为两个双引号,每行的内容用response.write ""输出。
4、删除表头中引用CSS的部分(没用,而且链接到子文件夹)
5、文件前面加上几行:
Response.Buffer = True
Response.ContentType = "application/octet-stream"
Response.AddHeader "Content-Disposition", "attachment; filename=book1.xls"
其中的book1.xls可改为你需要的文件名。
6、文件结尾加上:
Response.Flush
7、适当的地方加上数据库查询代码,并将数据行用结果集替换掉。

好了现在我们知道工作原理了,然后举例:

Asp代码

  1. EXCEL   
  2. <%   
  3. Response.ContentType ="application/vnd.ms-excel"  
  4. Response.AddHeader "Content-Disposition""attachment; filename=南京服务器托管表格.xls"  
  5. %>   
  6.   
  7. WORD   
  8. <%   
  9. Response.ContentType ="application/vnd.ms-word"  
  10. Response.AddHeader "Content-Disposition""attachment; filename=南京服务器托管文档.doc"  
  11. %>  

导出为WORD时,若文档中含有表格,需要打打印,则要在导出的页面中加入下面的样式。

Css代码

  • <style type="text/css">   
  • <!--   
  • table{   
  • border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;   
  • mso-yfti-tbllook:480;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;mso-border-insideh:   
  • .5pt solid windowtext;mso-border-insidev:.5pt solid windowtext;border-left:solid windowtext 1.0pt;border-top:solid windowtext 1.0pt;   
  • }   
  • td{   
  • border-top:none;border-left:   
  • none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;   
  • mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;   
  • mso-border-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt;   
  • }   
  • -->   
  • </style> 
  • 实际Asp代码:

  • <!--#include file="hbwlConfig.asp" -->   
  • <%Response.ContentType ="application/vnd.ms-excel"     
  • Response.AddHeader "Content-Disposition""attachment; filename=chengji.xls"%>   
  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
  • <html xmlns="http://www.w3.org/1999/xhtml">   
  • <head>   
  • <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
  • <title>打字成绩</title>   
  • <style type="text/css">   
  • .tableWg {border:1px solid #9bbde6;}   
  • .tableWg tr{text-align:center;}   
  • .tableWg td{ border-bottom:1px dotted #9bbde6; border-right:1px dotted #9bbde6;}   
  • </style>   
  • </head>   
  • <body>   
  • <%sql=session("chengjisql")   
  • response.Write hbwl.dbSelect(sql,0,1,"",0,"",0,"tableWg")%>   
  • </body>   
  • </html>   
  • <%set hbwl=nothing%> 
  • 另外在附一个通用的程序:

    asp导出excel不一定要直接从数据库导出。教你一个简单的页面导出方式:
    设计一查询页面,将数据库符合条件的数据显示在动态table表格上(不详细说了)
    1、将以下代码插到:<head></head>间:
    <script language="javascript">
    function AllAreaExcel(ID)
    {
    var oXL = new ActiveXObject("Excel.Application");
    var oWB = oXL.Workbooks.Add();
    var oSheet = oWB.ActiveSheet;
    var sel=document.body.createTextRange();
    sel.moveToElementText(ID);
    sel.select();
    sel.execCommand("Copy");
    oSheet.Paste();
    oXL.Visible = true;
    }
    </script>
    2、在动态表格前插入:<div id="test">
    3、在动态表格后插入:</div>
    4、设置一个“导出”按钮:<input name="Excel" type="button" id="Excel" onclick="javascript:AllAreaExcel(test);" value="导出Excel">

    点击“导出”按钮,就能将动态表格导出Excel。

    南京服务器托管 | 南京服务器租用 | 南京网站建设 | 南京企业建站 | 南京服务器代维 | 虚拟主机 | 顶级域名 | 网站优化 | 网站推广 | 南京中绘谷网络数据中心467.cn
    | 整理发布 | TEL:13913852884,025-58633651,QQ:21390019 

     

    发布者:admin 发布时间:2013/9/11 阅读:4559

    Baidu
    Copyright © 2002-2021 467.Cn All rights reserved    南京华昊网络技术有限公司    版权所有
    备案序号:苏ICP备13052121号    ISP经营许可证:苏B2-20080166    ICP/SP经营许可证:苏B2-20130350      苏公网安备 32011102010099号
    地址:南京市江北新区大桥北路77号电信大楼5楼    电话:025-58633651(8线)  13913852884  传真:025-58497310    E-mail:467cn@163.com    邮编:210032
    网址:Www.467.Cn    QQ在线支持:点击这里给我发消息 点击这里给我发消息