Coldfusion Excel导出

要想将页面的内容导出到Excel文件,用于保存备份或者是排版打印.在ColdFusion中可以通过2种方式来解决.
1. 简单方式
此种方式适合于简单页面,不能在Excel中形成多Sheet格式, 无排版.
我们先举个例子,以例子来说明这个方式的几个重点.
<cfprocessingdirective suppresswhitespace="yes">
<cfquery name="PRSList" datasource="PRS">
    SELECT * FROM PRS;
</cfquery>
<cfsetting enablecfoutputonly="yes">
<cfset TabChar = Chr(9)>
<cfset NewLine = Chr(13)&Chr(10)>
<cfsavecontent variable="theFileContent">
<cfloop query = "PRSList">
<cfoutput>
#PRSList.PRID##TabChar#
#PRSList.Title##TabChar#
#PRSList.Name##TabChar#
#DateFormat(PRSList.ModifyTime,"yyyy-mm-dd")##NewLine#
</cfoutput>
</cfloop>
</cfsavecontent>

<cfheader name="Content-Disposition" value="attachment;filename=prs.xls">
<cfcontent type="application/vnd.ms-excel; charset=gb2312"
            variable="#ToBinary(ToBase64(theFileContent,"gb2312"))#" reset="no">

</cfprocessingdirective>
我已经用不同的颜色来区分出来几个设计时候的重点了:
A> 这个是必须的, 它可以去除多余的空白字符.
<cfprocessingdirective suppresswhitespace="yes">

B> 这个设置内容可以输出,并定义了2个特殊字符:TAB符号和换行符号.
<cfsetting enablecfoutputonly="yes">
<cfset TabChar = Chr(9)>
<cfset NewLine = Chr(13)&Chr(10)>
C> 绿色的区域指定了要输出到Excel文件中的内容,并以变量 variable="theFileContent"来保存.
D> 红色部分是固定格式内容, 我们可以在这里设置缺省的存储文件名 filename=prs.xls.
2. 复杂方式
如果你要求的格式比较复杂,又排版需求,那么就只能采用这种方式了.
我们必须要通过Excel.Application组件来进行设计.下面我来介绍一下如何在ColdFusion中操作Excel组件.
<cfscript>
//创建组件实例
objExcel = CreateObject("COM", "Excel.Application");
//获取WorkBook, 也就是我们理解中的Excel文件.
objWorkBook = objExcel.WorkBooks.Add();
//获取WorkSheet,可以由2种方式.
objWorkSheet = objWorkBook.WorkSheets.add();
objWorkSheet = objWorkBook.WorkSheets.item("sheet1");
//设置列宽,行高,对齐方式
objWorkSheet.Columns.AutoFit();
objWorkSheet.Columns.item("A:I").HorizontalAlignment = 3;
objWorkSheet.Columns.item("A:I").VerticalAlignment   = 2;
objWorkSheet.Columns.item("A:I").ColumnWidth         = 10;
objWorkSheet.Rows.item("1:10").RowHeight             = 100;
//在第10行之前插入分页符, 删除时参数值为0
objWorkSheet.Rows.item("10").PageBreak = 1;
//获取单元格.
objRange = objWorkSheet.Range("A1:A1");
//设置单元格的宽度
objRange.ColumnWidth = 4.00;
//设置单元格的字体
objF = objRange.Font;
objF.Name = "黑体";
objF.Size = 16;
objF.Bold = True;
//设置单元格的对齐格式
objRange.HorizontalAlignment = 1;
objRange.VerticalAlignment = 1;
//设置单元格的回行
objRange.WrapText = True;
//设置单元格的收缩
objRange.ShrinkToFit = True;
//设置单元格的格式,@=文本显示,日期的可以是"yyyy-mm-dd"
objRange.NumberFormatLocal = "@";
//设置单元格的值
//objRange.value = "TEST";
//设置单元格的颜色
objI = objRange.Interior;
objI.ColorIndex = 6;
//设置单元格的边框, 不带item属性代表所有的边框
objLine = objRange.Borders;
//Borders参数: 1-左, 2-右, 3-顶, 4-底, 5-斜/, 6-斜/
objLine = objRange.Borders.item("5");
//LineStyle参数: 1 7-实线, 2-虚线, 4-点虚线, 9-双细实线
objLine.LineStyle = 2;
//合并单元格
objRange = objWorkSheet.Range("A2:C2");
objRange.MergeCells = true;
//可以对合并之后的单元格进行操作
objLine = objRange.Borders;
objLine.LineStyle = 9;
//定义打印时候的页头, 其中&30表示字体的大小,可更改
//CenterHeader可以替换为LeftHeader, RightHeader

objWorkSheet.PageSetup.CenterHeader    = "打印的表头";
objWorkSheet.PageSetup.CenterHeader    = "&30打印的表头";
//定义打印时候的页脚, 其中&20表示字体的大小,可更改
//CenterFooter可以替换为LeftFooter, RightFooter

objWorkSheet.PageSetup.CenterFooter    = "第&P页";
objWorkSheet.PageSetup.CenterFooter    = "&20第&P页";
//设置边距, 分子表示xx厘米
objWorkSheet.PageSetup.HeaderMargin    = 2/0.035;
objWorkSheet.PageSetup.FooterMargin    = 3/0.035;
objWorkSheet.PageSetup.TopMargin    = 2/0.035;
objWorkSheet.PageSetup.BottomMargin    = 4/0.035;
objWorkSheet.PageSetup.LeftMargin    = 2/0.035;
objWorkSheet.PageSetup.RightMargin    = 2/0.035;
//保存
objWorkSheet.SaveAs("c:/error_log.xls");
//关闭
objWorkBook.Close();
//释放
objExcel.Quit();
objExcel = "Nothing";
</cfscript>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值