jdbc方式+ jx标签库(在excel中利用el表达式+sql语句)
注意:suplyArea后跟的是其对应查询结果集中字段名(或者别名)。
下面是excle模板中的内容: <jx:forEach items="${rm.exec('select SUPPLYAREA_ID id,SUPPLYAREA_NAME name,X x,Y y,DATAGUID guid,STARTDATE sdate,ENDDATE edate,EDITUSER editor,LIFECYCLE life,REMARKS remarks from hsy_t_supplyarea order by SUPPLYAREA_ID DESC')}" var="suplyArea"> ${suplyArea.id}|${suplyArea.name}|${suplyArea.editor}|${suplyArea.sdate}| ${suplyArea.edate}|${suplyArea.life}|${suplyArea.x}|${suplyArea.y}| ${suplyArea.guid}|${suplyArea.remarks} </jx:forEach>
Sql语句如下: select SUPPLYAREA_ID id,SUPPLYAREA_NAME name,X x,Y y,DATAGUID guid,STARTDATE sdate,ENDDATE edate,EDITUSER editor,LIFECYCLE life,REMARKS remarks from hsy_t_supplyarea order by SUPPLYAREA_ID DESC
java代码: String templateDir = "D:/excel/template/SupplyAreaSQL.xls"; String targetDir="D:/excel/export/testSQL.xls"; Map beans = new HashMap(); Class.forName("oracle.jdbc.driver.OracleDriver").getInterfaces(); Connection con = DriverManager.getConnection("jdbc:oracle:thin:@168.9.202.49:1521:GIS", "JMJL","JMJL" ); ReportManager reportManager = new ReportManagerImpl(con,beans); beans.put("rm", reportManager); //关联模板 XLSTransformer transformer = new XLSTransformer(); transformer.transformXLS(templateDir, beans, targetDir);