Java 修改 Excel 单元格样式

Excel 是一款非常常用的电子表格软件,用于存储和处理大量的数据。在开发过程中,我们经常需要通过代码来操作 Excel,包括修改单元格的样式。本文将介绍如何使用 Java 代码来修改 Excel 单元格的样式。

1. 准备工作

在开始之前,我们需要准备以下工具和环境:

  • Java 开发环境
  • Apache POI 库:用于操作 Excel 文件
  • Excel 文件:我们将在代码中打开并修改此文件

在项目中引入 Apache POI 库,可以通过 Maven 或直接下载 JAR 文件进行引入。具体的引入方式可以参考 Apache POI 的官方文档。

2. 打开 Excel 文件

首先,我们需要打开 Excel 文件,以便后续的操作。以下是一个示例代码:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelStyleDemo {
    public static void main(String[] args) {
        try {
            // 1. 创建 Workbook 对象
            Workbook workbook = new XSSFWorkbook("path/to/excel/file.xlsx");

            // 2. 获取 Sheet 对象
            Sheet sheet = workbook.getSheetAt(0);

            // 3. 其他操作...

            // 4. 保存并关闭 Excel 文件
            workbook.write(new FileOutputStream("path/to/save/file.xlsx"));
            workbook.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在代码中,我们使用 XSSFWorkbook 类来创建一个 Workbook 对象,然后通过 getSheetAt() 方法获取第一个 Sheet 对象。你可以根据实际情况修改文件路径。

3. 修改单元格样式

接下来,我们将介绍如何修改单元格的样式,包括字体、颜色、边框等。以下是一些常用的样式操作示例:

3.1 设置单元格字体样式

// 获取 Cell 对象
Cell cell = sheet.getRow(rowNum).getCell(cellNum);

// 创建字体样式对象
Font font = workbook.createFont();
font.setFontName("Arial");
font.setFontHeightInPoints((short) 12);
font.setBold(true);

// 应用字体样式到单元格
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setFont(font);
cell.setCellStyle(cellStyle);

在上述代码中,我们首先获取 Cell 对象,然后创建一个 Font 对象并设置字体样式,最后创建一个 CellStyle 对象并将字体样式应用到单元格中。

3.2 设置单元格背景颜色

// 获取 Cell 对象
Cell cell = sheet.getRow(rowNum).getCell(cellNum);

// 设置背景颜色
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);

// 应用样式到单元格
cell.setCellStyle(cellStyle);

在上述代码中,我们创建了一个 CellStyle 对象,并使用 setFillForegroundColor() 方法设置背景颜色,然后使用 setFillPattern() 方法设置填充样式。最后将样式应用到单元格中。

3.3 设置单元格边框

// 获取 Cell 对象
Cell cell = sheet.getRow(rowNum).getCell(cellNum);

// 设置边框样式
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setBorderTop(BorderStyle.THIN);
cellStyle.setBorderBottom(BorderStyle.THIN);
cellStyle.setBorderLeft(BorderStyle.THIN);
cellStyle.setBorderRight(BorderStyle.THIN);

// 应用样式到单元格
cell.setCellStyle(cellStyle);

在上述代码中,我们创建了一个 CellStyle 对象,并使用 setBorderTop()setBorderBottom()setBorderLeft()setBorderRight() 方法设置边框样式。最后将样式应用到单元格中。

4. 保存修改后的 Excel 文件

在完成单元格样式的修改后,我们需要保存并关闭 Excel 文件。以下是示例代码:

// 保存并关闭 Excel 文件
workbook.write(new FileOutputStream("path/to/save/file.xlsx"));
workbook.close();

在上述代码中,我们使用 write() 方法将修改后的 Workbook 对象写入到文件中,并使用 close() 方法关闭 Workbook。

5. 示例代码

本文提供了一个完整的示例代码,用于演示如何修改 Excel 单元格的样式