在Java中使用Apache POI为Excel单元格添加边框和背景色的步骤如下:
导入所需库:
确保项目中已引入Apache POI相关依赖,特别是poi-ooxml
。创建或加载Excel工作簿:
使用Apache POI创建一个新的或加载一个现有的Excel工作簿。import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFSheet; // 创建新的工作簿 XSSFWorkbook workbook = new XSSFWorkbook(); // 或加载已有工作簿 XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream("path_to_your_file.xlsx")); XSSFSheet sheet = workbook.createSheet("Sheet1"); // 创建或获取工作表
定位目标单元格:
根据需要,通过getRow()
和getCell()
方法获取目标单元格。import org.apache.poi.ss.usermodel.Cell; int rowIndex = 0; // 目标行索引 int columnIndex = 0; // 目标列索引 Cell cell = sheet.getRow(rowIndex).getCell(columnIndex);
设置单元格样式:边框与背景色:
获取单元格的样式对象(CellStyle
),并设置边框样式和背景色。import org.apache.poi.ss.usermodel.BorderStyle; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.IndexedColors; // 获取或创建单元格样式 CellStyle style = cell.getCellStyle(); if (style == null) { style = workbook.createCellStyle(); } // 设置边框样式 style.setBorderTop(BorderStyle.THIN); // 上边框 style.setBorderBottom(BorderStyle.THIN); // 下边框 style.setBorderLeft(BorderStyle.THIN); // 左边框 style.setBorderRight(BorderStyle.THIN); // 右边框 // 设置边框颜色 style.setTopBorderColor(IndexedColors.BLACK.getIndex()); // 上边框颜色 style.setBottomBorderColor(IndexedColors.BLACK.getIndex()); // 下边框颜色 style.setLeftBorderColor(IndexedColors.BLACK.getIndex()); // 左边框颜色 style.setRightBorderColor(IndexedColors.BLACK.getIndex()); // 右边框颜色 // 设置背景色(填充色) style.setFillForegroundColor(IndexedColors.LIGHT_GREEN.getIndex()); // 背景色为浅绿色 style.setFillPattern(FillPatternType.SOLID_FOREGROUND); // 填充模式为纯色填充 // 将更新后的样式应用到单元格 cell.setCellStyle(style);
保存工作簿:
完成所有操作后,确保将修改后的Excel工作簿保存到文件或输出流。try (FileOutputStream outputStream = new FileOutputStream("output_file.xlsx")) { workbook.write(outputStream); } catch (IOException e) { e.printStackTrace(); }
综上所述,完整的代码示例如下:
```java
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFColor;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.IndexedColors;
import java.io.FileOutputStream