在隨意去逛的時候,看到《ASP中巧用Response屬性》這篇文章,想起以前看到的一篇國外相關的文章,不敢獨占,拿出來和大家分享。
調試是通過了,但有些用英文原話,還請大家多多包涵。
這裡講的是用ASP頁面如何轉換成Excel表格的形式,大家一點還記得以前有大蝦說過用DLL的形式來解決,但這樣對於大數據量來說,實在是慢。如果用文中介紹的方法,將不占用服務器的資源,只是在客戶端打開。還有個好處是:在網頁中的表格顯示成什麼樣子,在EXCEL中的表格就是什麼樣子。好吧,再告訴一個令人激動的消息,除了表格數據,在Excel中,象按鈕等都一概不顯示。這樣又解決了大家的網頁打印問題,簡直就是一舉多得。
廢話少說,進入正題。
為了創建一個動態的Excel報表,你首先要在一個ASP文件中寫:
<%
Response.ContentType = "application/vnd.ms-Excel"
%>
(記住:這句話一定要寫在文章的開頭喲,不然的話,嘿嘿....)
這句話是告訴浏覽器接下來的代碼是Excel格式的,然後浏覽器會提示你SAVE OR OPEN 該文件,然後你就可以打開了或保存它了。
看一個例子先:
<%
Response.ContentType = "application/vnd.ms-Excel"
%>
<Html>
<HEAD>
<link rel="stylesheet" href="STYLE.CSS">
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<table border="1" width="100%" bordercolorlight="#000080" bordercolordark="#0000FF" height="190">
<tr>
<td width="100%" colspan="12" height="30">
<p align="center"><b>由ASP頁面轉換成Excel報表</b></td>
</tr>
<%for i=1 to 8%>
<tr>
<td width="8%" height="16" align="center"><%=1*i%></td>
<td width="8%" height="16" align="center"><%=2*i%></td>
<td width="8%" height="16" align="center"><%=3*i%></td>
<td width="8%" height="16" align="center"><%=4*i%></td>
<td width="8%" height="16" align="center"><%=5*i%></td>
<td width="8%" height="16" align="center"><%=6*i%></td>
<td width="8%" height="16" align="center"><%=7*i%></td>
<td width="8%" height="16" align="center"><%=8*i%></td>
<td width="9%" height="16" align="center"><%=9*i%></td>
<td width="9%" height="16" align="center"><%=10*i%></td>
<td width="9%" height="16" align="center"><%=11*i%></td>
<td width="9%" height="16" align="center"><%=12*i%></td>
</tr>
<%next%>
<tr>
<td>=sum(a2:a9)</td>
<td>=sum(b2:b9)</td>
<td>=sum(c2:c9)</td>
<td>=sum(d2:d9)</td>
<td>=sum(e2:e9)</td>
<td>=sum(f2:f9)</td>
<td>=sum(g2:g9)</td>
<td>=sum(h2:h9)</td>
<td>=sum(i2:i9)</td>
<td>=sum(j2:j9)</td>
<td>=sum(k2:k9)</td>
<td>=sum(l2:l9)</td>
</tr>
</table>
<P align=center><input type=button value="test report" onclick="Javascript:alert('hello , my frIEnd,are you ready?')"></P>
</BODY>
</Html>
把此代碼搞到你的機器上,看看效果如何,哈哈,你就偷著樂去吧
等等,還有個小問題:
Microsoft has acknowledged a BUG in IE (3.02, 4.0, 4.01, 4.01sp1) which causes it to misinterPRet Excel output, particularly when generated by ASP, ISAPI, or CGI. You can read more about it at http://support.microsoft.com/support/kb/articles/q185/9/78.asp. To summarize: When Internet Explorer connects to a Web server resource that dynamically generates Word, Excel, or other Active Documents, Internet Explorer may send two GET requests for the resource. The second GET usually does not have session state information, temporary cookies, or authentication information that may have already been specified for the clIEnt. This bug can affect any local server (EXE) Active Document application hosted inside the Internet Explorer frame window. It occurs most frequently with ISAPI, ASP, or CGI applications that adjust the HTTP "Content Type" header to identify the installed application.
我呢,也碰到一個問題:我把它放在我自己的機器上(WIN2000)的時候,它並不給我下載或打開,只有把它放在另一台WEBSERVER上的時候才調試成功。
如果兄弟們有什麼更好的招,別忘了告訴我呀。