Jxls导出excel的若干方式总结(七)-- 导出查询记录到一个sheet,每条记录独占一块区域

注意:suplyArea后跟的是其对应数据库表的列名称。

Jxls导出excel的若干方式总结(七)-- 导出查询记录到一个sheet,每条记录独占一块区域_第1张图片

模板一

Jxls导出excel的若干方式总结(七)-- 导出查询记录到一个sheet,每条记录独占一块区域_第2张图片

模板二

注意:

1. 模板的各属性名称后要跟//+指定名称(个人理解就是属性的所属范围,这个属性属于哪一个集合。通过代码可以看出beans.put(“suplyArea”,rcs.getRow()))。所以所有属性后都跟着//suplyArea。

包括首行供应区信息 //suplyArea${suplyArea}//:6,下面最后两空行也是如此,为了将这个范围内所有

excel元素显示在导出的excel中。

2. 在图一和图二中 //:6 和//:5 表示该将行以下的6行和5行也囊括到该集合中来整体显示。否则会出来将同一个属性的所有值全部遍历出来。当然这样的设置是根据实际情况来设置数字的,如果数字设置大于实际的行范围则会抛出空指针异常,如果小于实际的行范围则会导致格式混乱。

代码:
List supplyAreaList = saBiz.getSupplyAreaById(supplyAreaId);
	SupplyArea sa = (SupplyArea) supplyAreaList.get(0);
	Long id = sa.getSupplyAreaId();
	String templateDir = "D:/excel/template/SupplyAreaRecordsInSheet.xls";
	String targetDir="D:/excel/export/testRecordsInSheet.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" );
	Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
	String query = "select SUPPLYAREA_ID,EDITUSER,SUPPLYAREA_NAME,X,Y," +
	        		"REMARKS,STARTDATE,ENDDATE,LIFECYCLE,DATAGUID " +
	        		"from HSY_T_SUPPLYAREA where SUPPLYAREA_ID <"+id;
	ResultSet rs = stmt.executeQuery(query);
	RowSetDynaClass rsc = new RowSetDynaClass(rs,false);
	beans.put("suplyArea",rsc.getRows());
	XLSTransformer transformer = new XLSTransformer();
	transformer.transformXLS(templateDir, beans, targetDir);

Jxls导出excel的若干方式总结(七)-- 导出查询记录到一个sheet,每条记录独占一块区域_第3张图片

导出结果




你可能感兴趣的:(导出Excel)