試試看從網(wǎng)頁(yè)中把表格直接生成excel,雖然不是直接從sql到excel,不過反而更加方便而且人性化。。
網(wǎng)上倒是找到了不少的資料,發(fā)現(xiàn)一段javascript的功能實(shí)現(xiàn)代碼,很不錯(cuò):
var elTable = document.getElementById("tb");
var oRangeRef = document.body.createTextRange();
oRangeRef.moveToElementText( elTable );
oRangeRef.execCommand( "Copy" );
var appExcel = new ActiveXObject( "Excel.Application" );
appExcel.Visible = true;
appExcel.Workbooks.Add().Worksheets.Item(1).Paste();
appExcel = null;
實(shí)現(xiàn)功能就是把id為tb的表格內(nèi)的數(shù)據(jù)都生成為excel,我試試了可行,但是放到服務(wù)器來運(yùn)行就是script error的提示,然后網(wǎng)上到處求問,也找了百度空間的幾位高手朋友問了下,可是還是不得其法。。不過還是很感謝他們的熱心幫助
沒辦法,我只能用別的方法來實(shí)現(xiàn)了,其實(shí)滿喜歡上面的這個(gè)javascript的功能的,比較人性化。??上仪H技窮,無法用上它,哎!~
既然我?guī)涂蛻粲胘sp寫的程序,那么我就還是用jsp來實(shí)現(xiàn)這個(gè)功能吧。。
于是找到了這么一個(gè)方法:
原文出自:http://www.jsp.mlc.edu.tw/viewitem.jsp?itemid=0000000065
***************************************************************************************************
一、將網(wǎng)頁(yè)資料以excel報(bào)表以線上瀏覽方式呈現(xiàn)
xls651.jsp原始碼如下
<%@ page contentType="application/msexcel; charset=gb2312" %>
<!-- 以上這行設(shè)定本網(wǎng)頁(yè)為excel格式的網(wǎng)頁(yè) -->
<%
response.setHeader("Content-disposition","inline; filename=test1.xls");
//以上這行設(shè)定傳送到前端瀏覽器時(shí)的檔名為test1.xls
//就是靠這一行,讓前端瀏覽器以為接收到一個(gè)excel檔
%>
<html>
<head>
<title>Excel檔案呈現(xiàn)方式</title>
</head>
<body>
<table border="1" width="100%">
<tr>
<td>姓名</td><td>身份證字號(hào)</td><td>生日</td>
</tr>
<tr>
<td>李玟</td><td>N111111111</td><td>1900/11/12</td>
</tr>
<tr>
<td>梁靜如</td><td>N222222222</td><td>1923/10/1</td>
</tr>
<tr>
<td>張惠妹</td><td>N333333333</td><td>1934/12/18</td>
</tr>
</table>
</body>
</html>
二、將網(wǎng)頁(yè)資料以excel報(bào)表以下載的方式呈現(xiàn)
這個(gè)jsp檔和上一個(gè)差不多,只有差別在這一行:
線上瀏覽的方式: response.setHeader("Content-disposition","inline; filename=test1.xls");
下載的方式: response.setHeader("Content-disposition","attachment; filename=test2.xls");
附注: 1.以上純以靜態(tài)網(wǎng)頁(yè)的方式呈現(xiàn)excel檔,配合資料庫(kù),你便能以動(dòng)態(tài)的報(bào)表方式做出excel報(bào)表了
2.完全不用安裝任何元件,或只能受限於win平臺(tái),一個(gè)簡(jiǎn)單的方式解決你的報(bào)表需求
3.聰明的你,應(yīng)該能舉一反三,知道如何將網(wǎng)頁(yè)資料以word的doc格式展現(xiàn)了吧!
(是不是只要把contentType改成"application/msword"以及filename的副檔名改成.doc就可以了!)