标签:adf 导出 excel 下载 模板 文件 managed bean 事件
本文提供一个基于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行内容,第一行是模板默认写入的内容,第二行是由程序控制写入的内容。
本文出自 “小伙伴” 博客,请务必保留此出处http://zglei.blog.51cto.com/9304205/1903946
标签:adf 导出 excel 下载 模板 文件 managed bean 事件
原文地址:http://zglei.blog.51cto.com/9304205/1903946