Java Excel处理库之JXLS

一、特点: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的基本使用 ,如需深入学习和使用请参考官网

jxls - Welcome to jXLS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值