ADF Faces导出Excel文件【附样例工程】

本文提供一个基于ADF Face组件开发样例工程,工程的实现过程分为3个部分以应对Excel导出开发中常见的处理。

1.空模版文件下载:将Excel文件视为普通文件提供下载操作。

2.数据文件输出,将数据内容输出为Excel文件,目标文件尽在服务端内存中存在,这种方式需要对Excel文件的内容处理,需要引入响应的类库。

3.模版文件填充数据后下载,基于服务端的物理文件为模板,将业务数据填入约定位置后提供下载,在实现方面需要为工作簿对象指定源文件输入流,并完成后续内容处理。

实现的基本思路,由ADF Faces组件触发文件下载事件,将输出流引致ManagedBean的事件处理方法中,由ManagedBean实现找到目标文件,组织数据内容,并输出文件流数据,浏览器客户端接到文件流后会完成剩余的下载过程。:

第一阶段:空模版文件下载

新建立工程名为:DemoExcelExp

创建一个JSP页面。

拖入一个按钮

为按钮增加客户端事件:文件下载。

操作之后页面的代码内容中,增加了没有设定属性的按钮事件标签。

在“结构”视图中可以选中事件节点,并在属性Tab面板设定下载文件类型和文件名称。

点击“Method”输入框旁边的下箭头,可以在IDE的辅助下建立管理Bean,并生成下事件的处理方法。

操作完成后,JSP页面的代码为

现在可以准备一个目标模版文件,将其放置在管理Bean源代码所在的文件夹内即可。模板文件有1行数据,分别是Demo1,Demo2,Demo3,Demo4

注意:这里需要检查JDeveloper的工程设定,确保编译过程会将Excel文件一并拷贝到输出目录中。

修改管理Bean的事件处理代码,通过类加载资源的方式找到并读取模板文件,然后将文件内容输出至事件导入的输出流对象中。

在JSP页面右键选择“Run”运行页面。

点击“模板下载”按钮,即可下载之前的模板文件了。

第二阶段:数据文件输出

加入第二个按钮:

输出数据文件,需要涉及到对Excel文件内容的处理,需要引入相应的类库,此处引用POI库完成Excel内容处理。


修改管理Bean中的事件处理方法。


然后即可执行看效果了,点击第二个按钮所下载的文件,就是由管理Bean创建并输出的内容了。

第三阶段:模版文件填充数据后下载

增加第三个按钮

修改管理Bean的事件处理代码

运行看到下载的文件有2行内容,第一行是模板默认写入的内容,第二行是由程序控制写入的内容。

时间: 2024-08-01 20:21:39

ADF Faces导出Excel文件【附样例工程】的相关文章

ADF Faces 表格应用基础案例二:动态字段+事件处理【附样例工程】

本文提供一个基于ADF Face组件开发样例工程,实现表格开发中常见的处理: 1.Map对象+Bean对象填充表格的数据行. 2.使用静态列.动态列.嵌套列的实现方法. 3.介绍表格中表单组件的使用方法. 4.介绍表格单行选中事件的处理过程. 本文是基于"ADF Faces 表格应用基础案例一:应用List<Class>填充文本表格"编写的,会省去许多细节部分的介绍. 实现的基本思路: 将样例工程的创建过程分为几个小的阶段,每个阶段实现了不同的目标. 第一阶段: 表格数据:

Biee11g导出excel文件打开时出现乱码

问题描述:在rpd中导出含有中文的CSV格式的文件后 用OFFICE2007打开时出现中文乱码情况 备注:导出csv文件时 选择编码为UTF-8则会出现乱码 选择UNICODE编码则正常显示 选择ANSI编码时 则导出文件不全-------只有""""符号 , 没有其他内容 故障原因 此种情况一般是导出的文件编码的问题.在简体中文环境下,EXCEL打开的CSV文件默认是ANSI编码,如果CSV文件的编码方式为utf-8.Unicode等编码可能就会出现文件乱码的情况

PHP从数据库导出EXCEL文件

参考博客链接:http://www.cnblogs.com/huangcong/p/3687665.html 我的程序代码 原生导出Excel文件 <?phpheader('Content-type: text/html; charset=utf-8');header("Content-type:application/vnd.ms-excel");header("Content-Disposition:filename=test.xls"); $conn =

TXLSReadWriteII2版本导出Excel文件:

//TXLSReadWriteII2版本导出Excel文件: procedure TForm1.N1Click(Sender: TObject); var i: Integer; aSaveDialog: TSaveDialog; aFileName, aStampTime: AnsiString; aXlsObj: TXLSReadWriteII2; p: PDataRec; begin aSaveDialog := TSaveDialog.Create(Self); try aSaveDia

使用Open Xml按模版导出Excel文件(下)

(3)将数据写入Excel 把数据写入到Excel文件是本文的关键技术.这里需要用到OpenXml.在Sdk里已经提供了足够的文件操作方法,我们就调用这些方法,将数据源的数据写到文件中. 首先我们定义了一些工具类,用于读取单元格的行列值. 在Excel中,每个单元格都有一个地址:如B3表示第二行第三列的格子,在Utility中的GetRowIndex和GetColumnIndex就是输入字符串”B3”,返回Int类型的索引2 和3.还有输入“B3”,返回列的字母“B”等等. 在WorkSheet

PHPExcel导出Excel文件

error_reporting(0); require_once 'phpexcel/PHPExcel.php'; require_once 'phpexcel/PHPExcel/IOFactory.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->getProperties()->setCreator("BillHong") ->setLastModifiedBy("BillHong")//创建

Java web中不同浏览器间导出Excel文件名称乱码问题解决方案

问题描述: 对于不同浏览器存在对中文编码格式问题,从而在导出Excel文件时,中文文件名出现乱码的情况,即在程序中给要导出的文件指定一个中文名字时,在浏览器上出现的下载框中的文件名出现了乱码,解决如下: 解决方案: [java] view plain copy Date dt=new Date();//如果不需要格式,可直接用dt,dt就是当前系统时间 DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//设置显示格

PHP导出excel文件,第一步先实现PHP模板导出不带数据

今天继续研究PHP导出excel文件,把复杂的事情简单化,一步步实现功能,首先实现模板文件的导出,随后再实现写入数据后导出,最终实现功能,这是基本思路.中间可以加一步,先自己写入数据导出试试,随后再数据库导入.我首先把程序提交到自建的eubexcel.php文件,选用post提交,导出excel文件的程序在这个页面里书写,参考昨天下载的PHPExcel-1.8组件里的参考文档,先部署导出excel,具体代码如下 <?php error_reporting(E_ALL);ini_set('disp

使用Open Xml按模版导出Excel文件(上)

完整内容请参见我的网站 http://www.iyummy.com.cn/Blog/Detail/3 我们在做应用系统中经常需要将数据库中的数据导出成为Excel文件.如果是要导出报表的话,最好是能够根据定义好的模版生成一个美观的Excel. 以前要生成有样式的Excel.一般是使用Xml形式的Excel修改,或者使用Excel的Api.前者要修改样式的话特别麻烦,后者在Asp.net里会起很多进程. 庆幸的是从office 2007开始,微软使用了OpenXml来定义office的文件.使用r