java导出excel报表
1、使用的是ssm框架,maven构建项目
2、使用jxls
3、maven依赖:
<dependency>
<groupId>net.sf.jxls</groupId>
<artifactId>jxls-core</artifactId>
<version>1.0.5</version>
</dependency>
<dependency>
<groupId>net.sf.jxls</groupId>
<artifactId>jxls-reader</artifactId>
<version>1.0.5</version>
</dependency>
4、代码实现
@RequestMapping("/alarmTopdf")
@ResponseBody
public AjaxResult alarmTopdf(HttpServletRequest req,HttpServletResponse response) throws OprException, ParseException{
AjaxResult ajaxResult = new AjaxResult();
List<RealData> list = (List<RealData>) SecurityUtils.getSubject().getSession().getAttribute("lm");
HashMap map = (HashMap) SecurityUtils.getSubject().getSession().getAttribute("pmap");
HashMap beans = new HashMap();
String fileFlag = String.valueOf(System.currentTimeMillis());
String dataInfo = "";
String path = req.getSession().getServletContext().getRealPath("/");
String userInfo = null;
String templateDir = path+"/excel-template/historyalarm.xls";//
SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss");
fileFlag = sf.format(new Date());
String outPutDir = path+"/outfile/报表告警数据"+fileFlag+".xls";
InputStream inputStream = null;
XLSTransformer xls = new XLSTransformer();
beans.put("list", list);
beans.put("map", map);
try {
xls.transformXLS(templateDir,beans,outPutDir);
userInfo = "/outfile/报表告警数据"+fileFlag+".xls";
} catch (ParsePropertyException e) {
e.printStackTrace();
} catch (InvalidFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
AjaxResult result = ajaxResult.success(userInfo);
return result;
}
分析
在做这个的时候 遇到一个坑:一定要有这个的,不然是不会出现excel文件的
excel模板:jstl表达式实现