這幾天在經(jīng)典、5D碰到很多人在問,如何用CF生成EXCEL文件,昨天夜晚就寫了一個示范程序放上來供大家參考。
我建議大家先自己慢慢體會,程序本身并不復雜,如果看不懂的再來問,最好不要看都沒看就來發(fā)問...
好的,我就用我CCF論壇的數(shù)據(jù)庫來做是實驗,目的是在線打開EXCEL文件和在線生成EXCEL文件。文件內(nèi)容就是CCF論壇所有版塊的名稱和編號。我順便做了個生成WORD文件的.代碼就改了一處.大家仔細看看. 在線打開OFFICE文件必須你系統(tǒng)安裝了OFFICE。記住這點,要不然就會提示下載。
<!---Application.cfm文件代碼--->
<CFAPPLICATION NAME="CfToOffice" sessionmanagement="Yes">
<CFSET request.DSN="CCF"><!---數(shù)據(jù)庫DSN--->
<!------index.cfm文件代碼------->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<cfquery name="viewlist" datasource="#request.dsn#"> select boardID,boardNAME from board order by boardID </cfquery>
<html> <head> <title>CCForum欄目一覽</title> </head> <body>
<center><h3>CCForum欄目一覽</h3></center><br><br> <table border="1" align="center"> <tr><td align="center"><b>編號</b></td><td align="center"><b>名稱</b></td></tr> <cfoutput query="viewlist"> <tr><td align="center">#boardID#</td><td align="left">#boardname#</td></tr> </cfoutput> </table> <p> <center> <a href="web.cfm" target="_blank">以WEB方式用EXCEL打開</a><br><br> <a href="doc.cfm" target="_blank">以WEB方式用word打開</a><br><br> <a href="file.cfm" target="_blank">生成EXCEL文件并下載</a><br><br><br> CopyRight(C)wait hunanet.com </center> </body> </html>
<!-----這個文件是用來在線以EXCEL文件形式打開的代碼---->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <cfsetting enablecfoutputonly="Yes"> <cfquery name="getboard" datasource="#request.dsn#"> select boardID,boardNAME from board order by boardID </cfquery>
<cfcontent type="application/msexcel"> <cfheader name="Content-Disposition" value="filename=board.xls">
<cfset tabchar=chr(9)> <cfset newline=chr(13)&chr(10)>
<cfloop query="getboard"> <cfoutput>#boardID##tabchar##boardname##newline#</cfoutput> </cfloop>
<!--------增加一個生成WORD示范....注意,就只改動了一處.--------->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <cfsetting enablecfoutputonly="Yes"> <cfquery name="getboard" datasource="#request.dsn#"> select boardID,boardNAME from board order by boardID </cfquery>
<cfcontent type="application/msword"> <cfheader name="Content-Disposition" value="filename=board.doc">
<cfset tabchar=chr(9)> <cfset newline=chr(13)&chr(10)>
<cfloop query="getboard"> <cfoutput>#boardID##tabchar##boardname##newline#</cfoutput> </cfloop>
<!---大家關(guān)心的來了,接下來我們做重要部分了---->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <cfsetting enablecfoutputonly="Yes"><!-- 刪除空白,提高性能 -->
<cfparam name="filebody" default=""> <cfset tabchar=chr(9)><!-- 設(shè)置TAB變量 --> <cfset newline=chr(13)&chr(10)><!-- 設(shè)置換行變量 -->
<cfset filepath=expandpath("file/")><!-- 把相對路徑換成絕對路徑 --> <cfset writepath="#filepath##session.cfid#.xls"><!-- 絕對路徑加上文件名 -->
<!-- 查詢數(shù)據(jù) --> <cfquery name="getboard" datasource="#request.dsn#"> select boardID,boardNAME from board order by boardID </cfquery>
<!-- 把所有信息設(shè)為一個變量filebody --> <cfloop query="getboard"> <cfoutput> <cfset filebody=filebody & "#boardID##tabchar##boardname#" & newline> </cfoutput> </cfloop>
<!-- 把filebody寫入文件 --> <cffile action="WRITE" file="#writepath#" output="#filebody#" addnewline="No">
<cfoutput>你所需要的信息已經(jīng)生成EXCEL格式文件, 文件地址是:<br>
<a href="file/#session.cfid#.xls">http<cfif CGI.HTTPS neq 'off'>s</cfif>
://#CGI.HTTP_HOST#/CF/Excel/file/#session.cfid#.xls</a>
</cfoutput>
值得注意的,我把存放動態(tài)生成的XLS文件存放在一個叫FILE的文件夾.你運行這代碼時必須先建立一個FILE文件夾....要不然會出錯.
相關(guān)討論:
http://www.95time.cn/bbs/NewsDetail.asp?id=791903
出處:藍色理想
責任編輯:無意
◎進入論壇網(wǎng)絡(luò)編程版塊參加討論
|