用Coldfusion產生 OFFICE 檔案的代碼

來源:互聯網
上載者:User

這幾天在經典、5D碰到很多人在問,如何用CF產生EXCEL檔案,昨天夜晚就寫了一個示範程式放上來供大家參考。

  我建議大家先自己慢慢體會,程式本身並不複雜,如果看不懂的再來問,最好不要看都沒看就來發問...

  好的,我就用我CCF論壇的資料庫來做是實驗,目的是線上開啟EXCEL檔案和線上產生EXCEL檔案。檔案內容就是CCF論壇所有版塊的名稱和編號。我順便做了個產生WORD檔案的.代碼就改了一處.大家仔細看看.
  線上開啟OFFICE檔案必須你系統安裝了OFFICE。記住這點,要不然就會提示下載。

<!---Application.cfm檔案代碼--->

<CFAPPLICATION NAME="CfToOffice"
sessionmanagement="Yes">

<CFSET request.DSN="CCF"><!---資料庫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>

<!---大家關心的來了,接下來我們做重要部分了---->

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<cfsetting enablecfoutputonly="Yes"><!-- 刪除空白,提高效能 -->

<cfparam name="filebody" default="">
<cfset tabchar=chr(9)><!-- 設定TAB變數 -->
<cfset newline=chr(13)&chr(10)><!-- 設定換行變數 -->

<cfset filepath=expandpath("file/")><!-- 把相對路徑換成絕對路徑 -->
<cfset writepath="#filepath##session.cfid#.xls"><!-- 絕對路徑加上檔案名稱 -->

<!-- 查詢資料 -->
<cfquery name="getboard" datasource="#request.dsn#">
select boardID,boardNAME from board
order by boardID
</cfquery>

<!-- 把所有資訊設為一個變數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>你所需要的資訊已經產生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>

  值得注意的,我把存放動態產生的XLS檔案存放在一個叫FILE的檔案夾.你運行這代碼時必須先建立一個FILE檔案夾....要不然會出錯.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.