ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

使用 Apache POI 更新/覆盖 特定的单元格

2026/8/4 5:38:59 拓冰建站 浏览量
使用 Apache POI 更新/覆盖 特定的单元格

使用 Apache POI 更新特定的单元格

  • 一. 需求
  • 二. 实现
  • 三. 效果

一. 需求

将以下表中第4行,第4列的单元格由“张宇”更新为“汤家凤”,并将更行后的结果写入新的Excel文件中;

在这里插入图片描述

二. 实现

使用Apache POI,可以精确定位到需要更改的单元格!高定制化的场景有时可能不适合用easyExcel;

步骤:

  • 由 file 依次 获取 workbook、sheet、row、cell;
  • 更新 cell;
  • 关闭 输入流,用新文件的path创建输出流;
  • 将更改后的 workbook 通过输出流 写入 新文件;
  • 关闭 workbook和输出流。
import org.apache.poi.xssf.usermodel.*;
import org.junit.Test;
import java.io.*;public class poiTest {@Testpublic void update() throws Exception{String sourceFile = "C:\\Users\\liziq\\Desktop\\student.xlsx"; // 原文件String newFile = "C:\\Users\\liziq\\Desktop\\student-new.xlsx"; // 更新后的新文件// 创建输入流FileInputStream fileInputStream = new FileInputStream(sourceFile);// 获取 workbookXSSFWorkbook wb = new XSSFWorkbook(fileInputStream);// 获取 sheetXSSFSheet sheet = wb.getSheetAt(0);// 获取单元格(index是从0开始)XSSFRow row = sheet.getRow(3);XSSFCell cell = row.getCell(3);// 更新单元格cell.setCellValue("汤家凤");// 关闭输入流fileInputStream.close();// 创建输出流FileOutputStream fileOutputStream=new FileOutputStream(newFile);// 将 workbook 写入 newFilewb.write(fileOutputStream);// 关闭workbook和输出流wb.close();fileOutputStream.close();}
}

三. 效果

生成“student-new.xlsx”,教高数的变成了“汤家凤”!
在这里插入图片描述

在这里插入图片描述

参考:
https://blog.csdn.net/zouxiongqqq/article/details/78478298