在某些时候我们需要把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代码
- EXCEL
- <%
- Response.ContentType ="application/vnd.ms-excel"
- Response.AddHeader "Content-Disposition", "attachment; filename=南京服务器托管表格.xls"
- %>
-
- WORD
- <%
- Response.ContentType ="application/vnd.ms-word"
- Response.AddHeader "Content-Disposition", "attachment; filename=南京服务器托管文档.doc"
- %>
导出为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