我是靠谱客的博主 威武奇迹,最近开发中收集的这篇文章主要介绍java修改Excel文件内容本地版接口版本,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本地版

背景:将一个excel中第三列的数据提取出中文,并填写到第四列中

参考代码如下:

try {

            //文件路径
            String filePath = "C:\Users\admin\Desktop\test.xlsx";
            FileInputStream inputStream = new FileInputStream(filePath);
            ExcelReader reader = ExcelUtil.getReader(inputStream);
            Workbook workbook = reader.getWorkbook();
            Sheet sheetAt = workbook.getSheetAt(0);
            //获取总行数
            int lastRowNum = sheetAt.getLastRowNum();
            logger.info("文件总行数:{}", lastRowNum);

            //遍历所有行:从第2列开始,第1列是标题
            for (int i = 1; i < lastRowNum; i++) {

                Row row = sheetAt.getRow(i);
                if (Objects.isNull(row)) continue;

                //获取第3列数据
                Cell cell = row.getCell(2);
                String str = cell.getStringCellValue();
                logger.info("文本内容:{}", str);
                //提取文本的中文
                String str2 = str.replaceAll("[^u4E00-u9FA5]", "");
                logger.info("中文内容:{}", str2);
                //修改本列内容
                //cell.setCellValue("设置新的内容");

                if (StringUtils.isNotBlank(str2)) {
                    //写入第四列中
                    Cell add = row.createCell(3);
                    add.setCellValue(str2);
                }
            }

            //将结果输出
            ExcelWriter writer = reader.getWriter();
            
            //将结果输出新文件中
            // writer.flush(new File("C:\Users\admin\Desktop\结果".xlsx"));
            
            //将结果覆盖到源文件
            writer.flush(new File(filePath));

            inputStream.close();
            reader.close();

        } catch (Exception e) {

            e.printStackTrace();
}

接口版本

demo如下:

    @PostMapping("test")
    public void test(HttpServletResponse response, @RequestParam("file") MultipartFile file) {
        try {

            InputStream inputStream = file.getInputStream();
            ExcelReader reader = ExcelUtil.getReader(inputStream);
            Workbook workbook = reader.getWorkbook();
            Sheet sheetAt = workbook.getSheetAt(0);
            //获取总行数
            int lastRowNum = sheetAt.getLastRowNum();
            logger.info("文件总行数:{}", lastRowNum);

            //遍历所有行:从第2列开始,第1列是标题
            for (int i = 1; i < lastRowNum; i++) {

                Row row = sheetAt.getRow(i);
                if (Objects.isNull(row)) continue;

                //获取第3列数据
                Cell cell = row.getCell(2);
                String str = cell.getStringCellValue();
                logger.info("文本内容:{}", str);
                //提取文本的中文
                String str2 = str.replaceAll("[^u4E00-u9FA5]", "");
                logger.info("中文内容:{}", str2);
                //修改本列内容
                //cell.setCellValue("设置新的内容");

                if (StringUtils.isNotBlank(str2)) {
                    //写入第四列中
                    Cell add = row.createCell(3);
                    add.setCellValue(str2);
                }
            }

            //将结果输出
            ExcelWriter writer = reader.getWriter();
            ServletOutputStream out = response.getOutputStream();
            writer.flush(out);
            out.flush();

            reader.close();
            inputStream.close();
            out.close();

        } catch (Exception e) {

            e.printStackTrace();
        }


    }

最后

以上就是威武奇迹为你收集整理的java修改Excel文件内容本地版接口版本的全部内容,希望文章能够帮你解决java修改Excel文件内容本地版接口版本所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部