Java如何设置Excel所有单元格样式

介绍

在处理Excel文件时,我们经常需要设置单元格的样式,例如字体、颜色、边框等。Java提供了一种强大的库,即Apache POI,可用于处理Excel文件。本文将介绍如何使用Apache POI设置Excel中所有单元格的样式。

前提条件

在开始之前,请确保已经安装了Java Development Kit (JDK) 和 Apache POI库。

步骤1:创建工作簿

首先,我们需要创建一个工作簿对象,用于表示Excel文件。可以使用XSSFWorkbook类创建一个新的工作簿。以下是创建工作簿的示例代码:

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

public class ExcelStylingExample {

    public static void main(String[] args) {
        // 创建工作簿
        Workbook workbook = new XSSFWorkbook();

        // 创建工作表
        Sheet sheet = workbook.createSheet("Sheet1");

        // 设置单元格样式
        // ...

        // 保存工作簿
        // ...
    }
}

步骤2:设置单元格样式

接下来,我们可以设置单元格的样式。样式可以应用于整个工作簿、工作表、单元格等级别。下面是设置所有单元格样式的示例代码:

// 创建单元格样式
CellStyle cellStyle = workbook.createCellStyle();

// 设置字体样式
Font font = workbook.createFont();
font.setFontName("Arial");
font.setFontHeightInPoints((short) 12);
font.setBold(true);
font.setColor(IndexedColors.RED.getIndex());

cellStyle.setFont(font);

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

// 设置边框
cellStyle.setBorderTop(BorderStyle.THIN);
cellStyle.setBorderBottom(BorderStyle.THIN);
cellStyle.setBorderLeft(BorderStyle.THIN);
cellStyle.setBorderRight(BorderStyle.THIN);

// 设置对齐方式
cellStyle.setAlignment(HorizontalAlignment.CENTER);
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);

// 应用样式到所有单元格
int rowCount = sheet.getLastRowNum();
for (int i = 0; i <= rowCount; i++) {
    Row row = sheet.getRow(i);
    int cellCount = row.getLastCellNum();
    for (int j = 0; j < cellCount; j++) {
        Cell cell = row.getCell(j);
        cell.setCellStyle(cellStyle);
    }
}

步骤3:保存工作簿

最后一步是将工作簿保存到Excel文件中。使用FileOutputStream将工作簿写入文件。以下是保存工作簿的示例代码:

import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelStylingExample {

    public static void main(String[] args) {
        // 创建工作簿和设置样式
        Workbook workbook = new XSSFWorkbook();
        // ...

        // 保存工作簿
        try (FileOutputStream outputStream = new FileOutputStream("output.xlsx")) {
            workbook.write(outputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

完整示例代码

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

import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelStylingExample {

    public static void main(String[] args) {
        // 创建工作簿
        Workbook workbook = new XSSFWorkbook();

        // 创建工作表
        Sheet sheet = workbook.createSheet("Sheet1");

        // 创建单元格样式
        CellStyle cellStyle = workbook.createCellStyle();

        // 设置字体样式
        Font font = workbook.createFont();
        font.setFontName("Arial");
        font.setFontHeightInPoints((short) 12);
        font.setBold(true);
        font.setColor(IndexedColors.RED.getIndex());

        cellStyle.setFont(font);

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

        // 设置边框
        cellStyle.setBorderTop(BorderStyle.THIN);
        cellStyle.setBorderBottom(BorderStyle.THIN);
        cellStyle.setBorderLeft(BorderStyle.THIN);
        cellStyle.setBorderRight(BorderStyle.THIN);

        // 设置对齐方式
        cellStyle.setAlignment(HorizontalAlignment.CENTER);
        cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);

        // 应用样式到所有单元格
        int rowCount = sheet.getLastRowNum();
        for (int i = 0; i <= rowCount; i++)