Jxls 导出excel

Jxls 导出excel

 1       public   static   void  exportExcel(String templateFileName, Map beans, 
 2              HttpServletRequest request,HttpServletResponse response){
 3           try  {
 4              response.setContentType( " application/vnd.ms-excel " );
 5              response.setHeader( " Content-Disposition " " attachment; filename=excel.xls " );
 6              XLSTransformer transformer  =   new  XLSTransformer();
 7 
 8              
 9              InputStream is  =   new  BufferedInputStream(
10                       new  FileInputStream(RequestUtil.getRealPath(request, templateFileName)));
11              
12              HSSFWorkbook workbook  =  transformer.transformXLS(is, beans);
13              OutputStream os  =  response.getOutputStream();
14              workbook.write(os);
15              is.close();
16              os.flush();
17              os.close();
18          }  catch  (Exception e) {
19              e.printStackTrace();
20          }
21      }
通过服务器端获取模版文件的绝对路径,然后通过response来输出到页面,就可以实现导出,这个比poi等等都简单很多,用起来比较舒服。
服务器路径的获取:request.getSession().getServletContext().getRealPath(name);
这样就可以获得web目录下某个文件的服务器端路劲。

今天在使用的时候发现一个问题,就是在使用表达式的时候有一个地方需要注意
${item.itemQty}
像上面的这个表达式就会出错,这里也没有看源代码,具体不是很清楚,但是看了一下日志,发现,后面的这个item也被替换了,所以觉得这个可能是jxls的bug或者是作者偷懒搞的。

以后只需要注意字段名不能跟bean的名字一样,否则就出错。

仅此记录

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