poi-tl根据文件模板批量下载到本地

poi-tl根据文件模板批量下载到本地

引入jar

        
            com.deepoove
            poi-tl
            1.10.4
        
        
            org.apache.poi
            poi
            4.1.2
        
        
            org.apache.poi
            poi-ooxml
            4.1.2
        

目前poi-tl已经升级到更高版本了 但这里为了防止项目中的poi easyexcel jar包冲突采用 1.10的版本

代码实现

//批量下载参数 downLoadHonourParam为检索条件-根据不同的条件下载
List personHourStudentList = personHourService.personHourStudentList(downLoadHonourParam);
        for (int i = 0; i < personHourStudentList.size(); i++) {
            PersonHourStudent student = personHourStudentList.get(i);
            String studentName = student.getStudentName();
            String name = student.getGradeName()+student.getClassName()+"-"+student.getStudentName();
            Map data = new HashMap<>();
            data.put("name", studentName);
            String resource = null;
            //针对不同的字段长度 预留不同的模板
            if(studentName.length()<=3){
                resource = Objects.requireNonNull(Thread.currentThread().getContextClassLoader().getResource("templates/person23.docx")).getPath();
            }else if(studentName.length()<= 5){
            //模板存放地址
                resource = Objects.requireNonNull(Thread.currentThread().getContextClassLoader().getResource("templates/person45.docx")).getPath();
            }else{
                resource = Objects.requireNonNull(Thread.currentThread().getContextClassLoader().getResource("templates/person6.docx")).getPath();
            }
            XWPFTemplate template = XWPFTemplate.compile(resource)
                    .render(data);
            FileOutputStream out;
            //下载到本地地址
            out = new FileOutputStream("E:\\studentHonour\\"+name+".docx");
            template.write(out);
            System.out.println("已生成:"+name);
            out.flush();
            out.close();
            template.close();
        }

模板设定

poi-tl根据文件模板批量下载到本地_第1张图片

你可能感兴趣的:(java,apache,开发语言)