一、特点:jxls是一个轻量级的Java库,用于基于模板的Excel报表生成
二、依赖:
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls-poi</artifactId>
<version>2.12.0</version>
</dependency>
三、工具封装方法参考
public static void exportExcel(HttpServletResponse response, Map<String, Object> varMap, String templateName) {
OutputStream os = null;
try {
//InputStream is = new FileInputStream("d:/temp/" + templateName + ".xlsx");
URL templateFileURL = JxlsUtil.class.getClassLoader().getResource("template/excel/" + templateName + ".xlsx");
log.info(templateFileURL.getPath());
InputStream is = new FileInputStream(templateFileURL.getPath());
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
//response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-Disposition", "attachment; filename=" + templateName + ".xlsx");
response.setHeader("Pragma", "public");
response.setHeader("Cache-Control", "no-store");
response.addHeader("Cache-Control", "max-age=0");
//response.setHeader("Content-Length", is.available()+"");
response.setContentType("application/octet-stream");
os = response.getOutputStream();
Context context = new Context(varMap);
JxlsHelper jxlsHelper = JxlsHelper.getInstance();
Transformer transformer = jxlsHelper.createTransformer(is, response.getOutputStream());
jxlsHelper.processTemplate(context, transformer);
} catch (IOException e) {
log.error(e.toString());
} finally {
if (os != null) {
try {
os.close();
} catch (IOException e) {
}
}
}
}
public void export(HttpServletResponse response, WorkSiteMaterialOut workSiteMaterialOut)
{
Map<String, Object> mapRet = new HashMap<>();
List<WorkSiteExportVO>list = workSiteService.selectWorkSiteExport(workSite);
if(list!=null && list.size()>0) {
Date nowDate = new Date();
mapRet.put("list", list);
mapRet.put("locationName", “xxxxxxx”);
}
// 注意这里的mapRet中的list就是给jx:each(item="list")的中的list使用的
JxlsUtil.exportExcel(response, mapRet, "WorkSiteMaterialOut");
}
说明:
1、定义模板的范围 jx:area
2、索引 jx:each(items="list" var="e" varIndex="index" lastCell="C2")
使用属性 varIndex 指定将保存从 0 开始的迭代索引的变量名称。
3、mapRet中的list就是给jx:each(item="list")的中的list使用的
mapRet.put("list", list);
以上是jxsl的基本使用 ,如需深入学习和使用请参考官网