Java设置Excel单元格样式

Excel是一款非常常用的电子表格软件,用于处理和存储大量的数据。在Java中,我们可以使用Apache POI库来读取和写入Excel文件。除了读取和写入数据外,我们还可以设置Excel单元格的样式,以美化和格式化数据展示。

本文将介绍如何使用Java设置Excel单元格的样式,包括设置字体样式、背景颜色、边框样式等。我们将使用Apache POI库来实现这些功能。

安装Apache POI库

在开始之前,我们需要先安装Apache POI库。可以通过以下Maven依赖将其添加到项目中:

<dependencies>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>4.1.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>4.1.2</version>
    </dependency>
</dependencies>

创建Excel文件

首先,我们需要创建一个Excel文件并添加一些数据。以下是一个简单的示例:

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

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

public class ExcelWriter {

    public static void main(String[] args) throws IOException {
        // 创建工作簿
        Workbook workbook = WorkbookFactory.create(true);

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

        // 创建行
        Row row = sheet.createRow(0);

        // 创建单元格并设置值
        Cell cell = row.createCell(0);
        cell.setCellValue("Hello, Excel!");

        // 保存Excel文件
        try (FileOutputStream outputStream = new FileOutputStream("sample.xlsx")) {
            workbook.write(outputStream);
        }
    }
}

以上代码创建了一个工作簿、一个工作表和一个单元格,并将字符串"Hello, Excel!"写入到单元格中。最后,通过FileOutputStream将工作簿保存到文件中。

设置单元格样式

设置字体样式

我们可以使用Font对象来设置单元格中文本的字体样式,如字体名称、大小、颜色等。以下是一个设置字体样式的示例:

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

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

public class ExcelWriter {

    public static void main(String[] args) throws IOException {
        // 创建工作簿
        Workbook workbook = WorkbookFactory.create(true);

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

        // 创建行
        Row row = sheet.createRow(0);

        // 创建单元格并设置值
        Cell cell = row.createCell(0);
        cell.setCellValue("Hello, Excel!");

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

        // 创建单元格样式并设置字体样式
        CellStyle cellStyle = workbook.createCellStyle();
        cellStyle.setFont(font);

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

        // 保存Excel文件
        try (FileOutputStream outputStream = new FileOutputStream("sample.xlsx")) {
            workbook.write(outputStream);
        }
    }
}

以上代码通过WorkbookcreateFont方法创建了一个字体样式对象Font,并通过createCellStyle方法创建了一个单元格样式对象CellStyle。然后,将字体样式应用到单元格样式,并通过setCellStyle方法将单元格样式应用到单元格上。

设置背景颜色

我们可以使用IndexedColors枚举类来设置单元格的背景颜色。以下是一个设置背景颜色的示例:

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

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

public class ExcelWriter {

    public static void main(String[] args) throws IOException {
        // 创建工作簿
        Workbook workbook = WorkbookFactory.create(true);

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

        // 创建行
        Row row = sheet.createRow(0);

        // 创建单元格并设置值
        Cell cell = row.createCell(0);
        cell.setCellValue("Hello, Excel!");

        // 创建单元格样式并设置背景颜色
        CellStyle cellStyle = workbook.createCellStyle();
        cellStyle.setFillForegroundColor(IndexedColors.YELLOW.getIndex());