java使用jxls导出excel

1、首先在pom文件添加三个依赖:

            
            org.jxls
            jxls
            2.10.0
       

       
            org.jxls
            jxls-poi
            2.10.0
       

       
            org.jxls
            jxls-jexcel
            1.0.9
       

java使用jxls导出excel_第1张图片

2、示例代码:

1)创建一个实体类:

@Data
public class Person {
    private String name;
    private String age;
    private String sex;
    private String post;
    private String sal;

}

2)实现如下:

@GetMapping("/export")
    public void export(HttpServletResponse response){
        boolean flag = true;
        List record = new ArrayList<>();
        for (int i = 0; i < 2; i++) {
            Person p = new Person();
            p.setName("kkm00"+i);
            p.setAge("30");
            p.setSex("man");
            p.setPost("资深架构师"+i);
            p.setSal("百万年薪");
            record.add(p);
        }
        //封装参数
        Map map = new HashMap();
        map.put("record",record);
        map.put("name","KKM");

        //获取模板

@GetMapping("/export")
    public void export(HttpServletResponse response){
        boolean flag = true;
        List record = new ArrayList<>();
        for (int i = 0; i < 2; i++) {
            Person p = new Person();
            p.setName("kkm00"+i);
            p.setAge("30");
            p.setSex("man");
            p.setPost("资深架构师"+i);
            p.setSal("百万年薪");
            record.add(p);
        }
        //封装参数
        Map map = new HashMap();
        map.put("record",record);
        map.put("name","KKM");

        //获取模板
        try {
            //resource目录下的文件
            ClassPathResource resource = new ClassPathResource("excel/InfoTemplate.xls");
            InputStream inputStream =resource.getInputStream();
            String fileName = "收入明细"+new Date().getTime();
            String fileNameEncoding = URLEncoder.encode(fileName,"utf-8");
            response.setContentType("application/vnd.ms-excel");
            response.setHeader("Content-disposition","attachment;filename="+fileNameEncoding+".xls");
            ServletOutputStream outputStream =response.getOutputStream();
            Context context = new Context();
            context.putVar("data",map);
            JxlsHelper.getInstance().processTemplate(inputStream,outputStream,context);
            outputStream.close();
            inputStream.close();
            LOGGER.info("入库单导出成功");
        } catch (IOException e) {
            LOGGER.error("入库单导出异常",e);
            e.printStackTrace();
        }
    }

注意:

1、文件路径一般放在resource目录下:

java使用jxls导出excel_第2张图片

2、每行的记录数据,首行记录的第一列要写批注信息,如下:
Administrator:
jx:each(items=”data.record” var=”record” lastCell=”Q4”)
说明:
data是context设置的变量;record是记录,一般是一个集合;lastCell值的是Excel表格的第几行,如图:

java使用jxls导出excel_第3张图片java使用jxls导出excel_第4张图片 

3、运行效果:

java使用jxls导出excel_第5张图片 

 

 

 

你可能感兴趣的:(java)