Java代码使用POI导出的单元格加上边框和背景色

简介: 【5月更文挑战第3天】Java代码使用POI导出的单元格加上边框和背景色

在Java中使用Apache POI为Excel单元格添加边框和背景色的步骤如下:

  1. 导入所需库
    确保项目中已引入Apache POI相关依赖,特别是poi-ooxml

  2. 创建或加载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"); // 创建或获取工作表
    
  3. 定位目标单元格
    根据需要,通过getRow()getCell()方法获取目标单元格。

    import org.apache.poi.ss.usermodel.Cell;
    
    int rowIndex = 0; // 目标行索引
    int columnIndex = 0; // 目标列索引
    Cell cell = sheet.getRow(rowIndex).getCell(columnIndex);
    
  4. 设置单元格样式:边框与背景色
    获取单元格的样式对象(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);
    
  5. 保存工作簿
    完成所有操作后,确保将修改后的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

目录
相关文章
|
27天前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
315 4
|
1月前
|
Java 数据处理 API
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
227 115
|
1月前
|
安全 Java 编译器
为什么你的Java代码需要泛型?类型安全的艺术
为什么你的Java代码需要泛型?类型安全的艺术
165 98
|
1月前
|
Java 编译器 API
java最新版和java8的区别,用代码展示
java最新版和java8的区别,用代码展示
202 43
|
1月前
|
安全 Java 容器
告别空指针噩梦:Optional让Java代码更优雅
告别空指针噩梦:Optional让Java代码更优雅
333 94
|
1月前
|
安全 Java 容器
告别繁琐判空:Optional让你的Java代码更优雅
告别繁琐判空:Optional让你的Java代码更优雅
|
2月前
|
IDE Java 关系型数据库
Java 初学者学习路线(含代码示例)
本教程为Java初学者设计,涵盖基础语法、面向对象、集合、异常处理、文件操作、多线程、JDBC、Servlet及MyBatis等内容,每阶段配核心代码示例,强调动手实践,助你循序渐进掌握Java编程。
352 3
|
2月前
|
安全 Java 应用服务中间件
Spring Boot + Java 21:内存减少 60%,启动速度提高 30% — 零代码
通过调整三个JVM和Spring Boot配置开关,无需重写代码即可显著优化Java应用性能:内存减少60%,启动速度提升30%。适用于所有在JVM上运行API的生产团队,低成本实现高效能。
243 3
|
2月前
|
Java
java入门代码示例
本文介绍Java入门基础,包含Hello World、变量类型、条件判断、循环及方法定义等核心语法示例,帮助初学者快速掌握Java编程基本结构与逻辑。
370 0