Java Excel设置单元格格式

Excel表格是一种常用的办公工具,它不仅可以存储和管理大量的数据,还可以进行各种数据分析和报表生成。在Java中,我们可以使用Apache POI库来操作Excel文件,包括创建、读取和修改Excel文件。在本文中,我们将重点介绍如何使用Java代码设置Excel单元格的格式。

1. 引入依赖

首先,我们需要在项目中添加Apache POI库的依赖。在Maven项目中,在pom.xml文件中添加以下依赖:

<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>

2. 创建Excel文件

首先,我们需要创建一个新的Excel文件。可以使用以下代码创建一个空的Excel工作簿:

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

// 创建工作簿
Workbook workbook = new XSSFWorkbook();

3. 创建工作表

接下来,我们需要在工作簿中创建一个工作表。可以使用以下代码创建一个工作表:

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

4. 设置单元格格式

在Excel中,每个单元格都可以有不同的格式,如数字、文本、日期、货币等。我们可以使用Java代码设置单元格的格式。

4.1 设置文本格式

要将单元格格式设置为文本,可以使用以下代码:

// 设置文本格式
CellStyle textStyle = workbook.createCellStyle();
DataFormat textFormat = workbook.createDataFormat();
textStyle.setDataFormat(textFormat.getFormat("@"));

// 创建单元格
Cell cell = sheet.createRow(0).createCell(0);
cell.setCellValue("Hello World");
cell.setCellStyle(textStyle);

4.2 设置数字格式

要将单元格格式设置为数字,可以使用以下代码:

// 设置数字格式
CellStyle numberStyle = workbook.createCellStyle();
DataFormat numberFormat = workbook.createDataFormat();
numberStyle.setDataFormat(numberFormat.getFormat("0.00"));

// 创建单元格
Cell cell = sheet.createRow(0).createCell(0);
cell.setCellValue(123.45);
cell.setCellStyle(numberStyle);

4.3 设置日期格式

要将单元格格式设置为日期,可以使用以下代码:

// 设置日期格式
CellStyle dateStyle = workbook.createCellStyle();
DataFormat dateFormat = workbook.createDataFormat();
dateStyle.setDataFormat(dateFormat.getFormat("yyyy-mm-dd"));

// 创建单元格
Cell cell = sheet.createRow(0).createCell(0);
cell.setCellValue(new Date());
cell.setCellStyle(dateStyle);

4.4 设置货币格式

要将单元格格式设置为货币,可以使用以下代码:

// 设置货币格式
CellStyle currencyStyle = workbook.createCellStyle();
DataFormat currencyFormat = workbook.createDataFormat();
currencyStyle.setDataFormat(currencyFormat.getFormat("¥#,##0.00"));

// 创建单元格
Cell cell = sheet.createRow(0).createCell(0);
cell.setCellValue(12345.67);
cell.setCellStyle(currencyStyle);

5. 保存Excel文件

完成后,我们需要将工作簿保存到硬盘上的Excel文件中。可以使用以下代码将工作簿保存为Excel文件:

// 保存Excel文件
try {
    FileOutputStream outputStream = new FileOutputStream("output.xlsx");
    workbook.write(outputStream);
    workbook.close();
    outputStream.close();
} catch (IOException e) {
    e.printStackTrace();
}

6. 完整示例代码

下面是一个完整的示例代码,演示如何使用Java代码设置Excel单元格的格式:

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

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;

public class ExcelFormatExample {

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

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

        // 设置文本格式
        CellStyle textStyle = workbook.createCellStyle();
        DataFormat textFormat = workbook.createDataFormat();
        textStyle.setDataFormat(textFormat.getFormat("@"));

        // 设置数字格式
        CellStyle numberStyle = workbook