jxls官网:http://jxls.sourceforge.net/

基本在这里可以查看所有的实例和帮助

模板和生成后的效果见附件

生成后的效果图:

因列较多,可以查看附件

java代码:

Map beans = new HashMap();
            beans.put("reports", reports);
           
            String systemPath = getRequest().getSession().getServletContext().getRealPath("/");
            File templateFile = new File(systemPath + "report\\ExportTemplate.xls");
            String excelPath = systemPath + "report\\" + UUIDGenerator.getUUID() + ".xls";
            File file = new File(excelPath);
            XLSTransformer transformer = new XLSTransformer();
            transformer.groupCollection("report.regionId");
            try {
                transformer.transformXLS(templateFile.getPath(), beans, excelPath);
                jsonString = "{success:true,fileName:' 区域汇总.xls',filePath:'"
                    + file.getName() + "'}";
            } catch (ParsePropertyException e) {
                e.printStackTrace();
            } catch (InvalidFormatException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

前台采用的ext:

success : function(fp, action){
                        var result = Ext.JSON.decode(action.response.responseText);
                        me.searchWindow.close();
                        Ext.MessageBox.show({
                                title : '提示信息',
                                msg : "导出成功,请点击下载到本地:" + result.fileName
                                    + "
",
                                icon : 'ext-mb-info'
                            });
                    },

这里生成xls文件后之间将文件传给前台下载,并没有采用struts进行下载,如果希望采用struts下载可以参看官网资料,也很详细。

采用的jar包: