Java导出Excel设置序号

在Java开发中,经常需要将数据导出到Excel文件中,以便用户可以方便地查看和处理数据。其中一个常见的需求是在Excel中为数据添加序号,以便用户可以轻松地识别每一行数据的索引。本文将介绍如何使用Java实现导出Excel并设置序号的功能。

1. 准备工作

在开始之前,我们需要准备一些工具和库来帮助我们实现导出Excel的功能。以下是需要准备的内容:

  • Java开发环境(JDK)
  • Apache POI库(用于操作Excel)
  • 导出功能的数据源(可以是数据库、文件等)

请确保您已经安装了Java开发环境,并已经将Apache POI库添加到项目的依赖中。您可以通过在pom.xml文件中添加以下依赖来引入Apache POI库:

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

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

public class ExcelExporter {

    public static void exportToExcel(List<String> data, String filePath) throws IOException {
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("Sheet1");

        // 创建标题行
        Row headerRow = sheet.createRow(0);
        Cell headerCell = headerRow.createCell(0);
        headerCell.setCellValue("序号");

        // 创建数据行
        for (int i = 0; i < data.size(); i++) {
            Row dataRow = sheet.createRow(i + 1);
            Cell dataCell = dataRow.createCell(0);
            dataCell.setCellValue(i + 1);

            dataCell = dataRow.createCell(1);
            dataCell.setCellValue(data.get(i));
        }

        // 自动调整列宽
        sheet.autoSizeColumn(0);
        sheet.autoSizeColumn(1);

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

在上述代码中,我们使用Apache POI库创建了一个新的Excel工作簿,并在其中创建了一个名为"Sheet1"的工作表。然后,我们创建了一个标题行,其中包含一个名为"序号"的单元格,用于显示序号。接下来,我们遍历数据列表,并为每个数据创建一行,其中第一列是序号,第二列是实际数据。最后,我们自动调整列宽,并将Excel文件保存到指定的路径。

3. 使用Excel导出工具类

现在我们已经创建了Excel导出工具类,下面是如何使用该类的示例代码:

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class Main {

    public static void main(String[] args) {
        List<String> data = new ArrayList<>();
        data.add("数据1");
        data.add("数据2");
        data.add("数据3");

        String filePath = "output.xlsx";

        try {
            ExcelExporter.exportToExcel(data, filePath);
            System.out.println("Excel导出成功!");
        } catch (IOException e) {
            System.out.println("Excel导出失败:" + e.getMessage());
        }
    }
}

在上述示例代码中,我们创建了一个包含一些数据的列表,并指定了要导出的Excel文件的路径。然后,我们调用Excel导出工具类的exportToExcel方法,并将数据列表和文件路径作为参数传递给它。最后,我们在控制台打印出导出结果。

4. 类图

下面是Excel导出工具类的类图:

classDiagram
    class ExcelExporter {
        - Workbook workbook
        - Sheet sheet
        - exportToExcel(List<String> data, String filePath)
    }

在上述类图中,ExcelExporter类具有一个Workbook对象和一个Sheet对象,以及一个用于导出Excel的方法export