使用 Apache POI 操作 OOXML 格式 (.xlsx) 需依賴 poi-ooxml。核心類:XSSFWorkbook(工作簿)、XSSFSheet(工作表)、XSSFRow(行)、XSSFCell(儲存格)。
try (FileInputStream fis = new FileInputStream("data.xlsx");
XSSFWorkbook wb = new XSSFWorkbook(fis)) {
XSSFSheet sheet = wb.getSheetAt(0);
for (Row row : sheet) {
for (Cell cell : row) {
System.out.print(getCellValue(cell) + "\t");
}
System.out.println();
}
}
// 修改儲存格
Cell cell = row.getCell(0);
cell.setCellValue("新值");
// 插入行(需下移後續行)
sheet.shiftRows(insertIndex, sheet.getLastRowNum(), 1);
Row newRow = sheet.createRow(insertIndex);
// 填充數據...
// 刪除行
sheet.shiftRows(deleteIndex + 1, sheet.getLastRowNum(), -1);
sheet.removeRow(sheet.getRow(sheet.getLastRowNum()));
private String getCellValue(Cell cell) {
if (cell == null) return "";
return switch (cell.getCellType()) {
case STRING -> cell.getStringCellValue();
case NUMERIC -> DateUtil.isCellDateFormatted(cell)
? cell.getDateCellValue().toString() : String.valueOf(cell.getNumericCellValue());
case BOOLEAN -> String.valueOf(cell.getBooleanCellValue());
case FORMULA -> cell.getCellFormula();
default -> "";
};
}
注意:大數據量時建議使用 SXSSF (流式) 避免 OOM。