本文提供一个基于ADF Face组件开发样例工程,工程的实现过程分为3个部分以应对Excel导出开发中常见的处理。浏览器
1.空模版文件下载:将Excel文件视为普通文件提供下载操做。ide
2.数据文件输出,将数据内容输出为Excel文件,目标文件尽在服务端内存中存在,这种方式须要对Excel文件的内容处理,须要引入响应的类库。spa
3.模版文件填充数据后下载,基于服务端的物理文件为模板,将业务数据填入约定位置后提供下载,在实现方面须要为工做簿对象指定源文件输入流,并完成后续内容处理。orm
实现的基本思路,由ADF Faces组件触发文件下载事件,将输出流引致ManagedBean的事件处理方法中,由ManagedBean实现找到目标文件,组织数据内容,并输出文件流数据,浏览器客户端接到文件流后会完成剩余的下载过程。:对象
第一阶段:空模版文件下载
blog
新创建工程名为: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行内容,第一行是模板默认写入的内容,第二行是由程序控制写入的内容。