通过poi实现对已有的excel模板填充数据

实现对已有的excel模板根据索引位置填充数据

在pom.xml文件中添加依赖 :

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.5</version>
</dependency>

数据装填(只针对第一个sheet) :

        //根据自身的excel文件地址,将文件转为文件输入流
        InputStream inputStream= new FileInputStream(file.getUrl);
        // 配置输出流相关数据
        HttpServletResponse response = ServletUtils.getResponse();
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        Workbook workbook = null;
        try {
            // 根据文件后缀,进行不同的格式的数据转换
            switch (fileSuffix){
                case ".xls":
                    workbook = new HSSFWorkbook(inputStream);
                    break;
                case ".xlsx":
                    workbook = new XSSFWorkbook(inputStream);
                    break;
                default:
                    System.out.println("文件类型错误");
            }
            Sheet sheet = workbook.getSheetAt(0);
            // 给sheet起名
            workbook.setSheetName(0,"第一个sheet");
            // 获取本页sheet最后一行不为空数据的位置
            int lastRowNum = sheet.getLastRowNum();
            // 当已上传的excel模板存在自定义好的列名,则拿出来。没有列名可直接从第0行赋值
            Row row = sheet.getRow(lastRowNum);
            // 将需要填入的数据根据索引位置进行填充
            dataList.forEach(data ->{
                Row newRow = sheet.createRow(lastRowNum + 1);
                for (Integer index : data.keySet()){
                    newRow.createCell(index).setCellValue(data.get(index));
                }
            });
            OutputStream outputStream = response.getOutputStream();
            // 将构建好的excel写入输出流
            workbook.write(outputStream);
            // 进行流关闭
            outputStream.close();
            workbook.close();
        } catch (IOException e) {
            e.printStackTrace();
        }


posted @   T神  阅读(189)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示