欢迎来到代码驿站!

当前位置:首页 >

用Coldfusion生成 OFFICE 文件的代码

时间:2021-01-07 11:18:41|栏目:|点击:
这几天在经典、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文件夹....要不然会出错. 

上一篇:catalyst 5000系列交换机的端口分析

栏    目:

下一篇:Powershell小技巧之通过EventLog查看近期电脑开机和关机时间

本文标题:用Coldfusion生成 OFFICE 文件的代码

本文地址:http://www.codeinn.net/misctech/41664.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有