对于简单JXLS的使用

     JXLS是基于Jakarta POI API的Excel报表生成工具,可以生成精美的Excel格式报表。它采用标签的方式,类似JSP标签,写一个Excel模板,然后生成报表,非常灵活,简单!

需要的主要Jar包:

commons-jexl-2.1.1.jar

jxls-core-1.0.1.jar

jxls-reader-1.0.1.jar

poi-3.9-20121203.jar

poi-ooxml-3.9-20121203.jar

模板中是使用jexl标签,使用很方便 。如:

   需要在Excel中迭代生成数据可以使用:

   <jx:forEach items="${resList}" var="entity" >

         ${entity.count }

   </jx:forEach>

   需要在Excel做业务逻辑判断:

  <jx:if test="${status.index>10 }">

   </jx:if>

 需要显示一些信息:

${变量名}

等等,有很多标签。注意:“${变量名}”中的变量名一定要和你在后台放入Map中的Key值相同。

以上是对于Excel模板中的制作。下面介绍一下后台的实现:

  //用于存放相关数据,并出入模板的Map信息

  Map<Object, Object> beans = new HashMap<Object,Object>();
  UserTask ut = (UserTask) request.getSession().getAttribute("USER_TASK");
  Route r = null;
  Task task = null;
  User user = null;
  if(ut != null){
   task = ut.getTask();
   user = ut.getUser();
  }
  if(task != null){
   
   if(task.getStartTime() != null){
    //用于生成一些不需要循环的信息(key是在模板中的变量名,在模板中会生成对应的Value)
    beans.put("leaveTime", sdf.format(task.getStartTime()));
   }else{
    beans.put("leaveTime", "");
   }
   if(task.getEndTime() != null){
    
    beans.put("comebackTime", sdf.format(task.getEndTime()));
   }else{
    beans.put("comebackTime", "");
   }
   
   if(task.getVehicle() != null){
    Vehicle v = task.getVehicle();
    beans.put("licenseplatenumber",v.getLicensePlateNumber());
    beans.put("vehicleName", v.getVehicleName());
    beans.put("vehicleCategory", v.getVehicleCategory());

 //创建XLSTransformer对象  
  XLSTransformer transformer = new XLSTransformer();

//模板解析Jexl表达式
  transformer.setJexlInnerCollectionsAccess(true);

    //需要迭代循环输出的数据信息

  List<TaskExcelDto> teList = new ArrayList<TaskExcelDto>();
  if(r != null){
   List<Site> sList = siteService.getByRouteId(r.getRouteId());
   for(int i=0; i<sList.size(); i++){
    TaskExcelDto teDto = new TaskExcelDto();
    teDto.setCount(i+1);
    teDto.setInstitutionName(sList.get(i).getSiteName());
    teDto.setMileage(sList.get(i).getMileage());
    teDto.setMessage("");
    teList.add(teDto);
   }
   
  }

//把list放入到Map中
  beans.put("resList", teList);

//templateFileName 为模板的路劲

//beans为出入到模板中的数据

//fileName为新生成Excel的文件名
  transformer.transformXLS(templateFileName, beans, fileName);

以上一些代码为Jxls生成Excel的核心代码事例。

由于本人第一次写微博,写的不好请多见谅,谢谢。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值