用Coldfusion生成 OFFICE 文件的代碼
更新時(shí)間:2007年03月15日 00:00:00 作者:
這幾天在經(jīng)典、5D碰到很多人在問,如何用CF生成EXCEL文件,昨天夜晚就寫了一個(gè)示范程序放上來供大家參考。
我建議大家先自己慢慢體會(huì),程序本身并不復(fù)雜,如果看不懂的再來問,最好不要看都沒看就來發(fā)問...
好的,我就用我CCF論壇的數(shù)據(jù)庫來做是實(shí)驗(yàn),目的是在線打開EXCEL文件和在線生成EXCEL文件。文件內(nèi)容就是CCF論壇所有版塊的名稱和編號。我順便做了個(gè)生成WORD文件的.代碼就改了一處.大家仔細(xì)看看.
在線打開OFFICE文件必須你系統(tǒng)安裝了OFFICE。記住這點(diǎn),要不然就會(huì)提示下載。
<!---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>
<!-----這個(gè)文件是用來在線以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>
<!--------增加一個(gè)生成WORD示范....注意,就只改動(dòng)了一處.--------->
<!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è)為一個(gè)變量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>
值得注意的,我把存放動(dòng)態(tài)生成的XLS文件存放在一個(gè)叫FILE的文件夾.你運(yùn)行這代碼時(shí)必須先建立一個(gè)FILE文件夾....要不然會(huì)出錯(cuò).
我建議大家先自己慢慢體會(huì),程序本身并不復(fù)雜,如果看不懂的再來問,最好不要看都沒看就來發(fā)問...
好的,我就用我CCF論壇的數(shù)據(jù)庫來做是實(shí)驗(yàn),目的是在線打開EXCEL文件和在線生成EXCEL文件。文件內(nèi)容就是CCF論壇所有版塊的名稱和編號。我順便做了個(gè)生成WORD文件的.代碼就改了一處.大家仔細(xì)看看.
在線打開OFFICE文件必須你系統(tǒng)安裝了OFFICE。記住這點(diǎn),要不然就會(huì)提示下載。
<!---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>
<!-----這個(gè)文件是用來在線以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>
<!--------增加一個(gè)生成WORD示范....注意,就只改動(dòng)了一處.--------->
<!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è)為一個(gè)變量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>
值得注意的,我把存放動(dòng)態(tài)生成的XLS文件存放在一個(gè)叫FILE的文件夾.你運(yùn)行這代碼時(shí)必須先建立一個(gè)FILE文件夾....要不然會(huì)出錯(cuò).
相關(guān)文章
ColdFusionMX 編程指南 ColdFusionMX中的循環(huán)
ColdFusionMX 編程指南 ColdFusionMX中的循環(huán)...2007-03-03ColdFusionMX 編程指南 ColdFusionMX Basic Tag編程
ColdFusionMX 編程指南 ColdFusionMX Basic Tag編程...2007-03-03