首页 > 代码库 > ADF Faces导出Excel文件【附样例工程】

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行内容,第一行是模板默认写入的内容,第二行是由程序控制写入的内容。

技术分享


本文出自 “小伙伴” 博客,请务必保留此出处http://zglei.blog.51cto.com/9304205/1903946

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