J2EE代码存档--导出Excel
前台使用Ext JS,后台框架为SSH,使用Apache的POI组件来实现导出Excel功能。
Apache POI是Apache软件基金会的开放源码函数库,POI提供API给Java程序对Microsoft
Office格式文档进行读写的功能。本项目的各管理模块中用到的导出Excel功能都是调用POI库在服务器端先生成Excel文件,然后提供给前端进行下载的。
首先,导入apache的POI库文件。初始化一个workbook,并创建新的sheet,然后逐行生成并插入row,即可生成一个Excel文件。最后将workbook写入ByteArrayInputStream流传输到前台。进行适当的配置之后,浏览器就能识别出Excel文件。
配置文件中,需指定相应Action的返回结果的类型为excel文件流,并且以附件的形式打开,还要指定文件的名字,例如:
配置好之后,前端用Javascript函数window.open()打开相应的Action,并附上查询条件作为请求参数,即可打开一个新的浏览器窗口进行导出。Action核心代码如下,需要考虑的一个问题是,Office的Excel文件(03版之前)中,每一个工作表最多能有65536行,所以如果超过65536行数据,需要进行特殊处理,创建多个工作表(sheet):
辅助函数:
Struts的配置文件中,可以指定上传文件的大小限制,此处限制为16兆: