Java Excel简单封装POI实现步骤

1. 导入POI依赖

首先,我们需要在Java项目中导入POI库,以便使用POI提供的API来操作Excel文件。在项目的pom.xml文件中添加以下依赖:

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

2. 创建Excel工具类

我们可以创建一个名为ExcelUtils的工具类,用于封装POI操作Excel的方法。可以使用以下代码创建该类:

public class ExcelUtils {
    // 在这里实现POI操作Excel的方法
}

3. 实现Excel读操作

为了实现Excel的读取操作,我们可以在ExcelUtils类中添加一个静态方法,例如readExcel(String filePath),用于从指定路径的Excel文件中读取数据。可以使用以下代码实现:

public static List<List<String>> readExcel(String filePath) {
    List<List<String>> data = new ArrayList<>();

    try {
        FileInputStream fis = new FileInputStream(filePath);
        Workbook workbook = WorkbookFactory.create(fis);
        Sheet sheet = workbook.getSheetAt(0);

        for (Row row : sheet) {
            List<String> rowData = new ArrayList<>();
            for (Cell cell : row) {
                rowData.add(cell.toString());
            }
            data.add(rowData);
        }

        workbook.close();
        fis.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

    return data;
}

4. 实现Excel写操作

为了实现Excel的写入操作,我们可以在ExcelUtils类中添加一个静态方法,例如writeExcel(String filePath, List<List<String>> data),用于将数据写入到指定路径的Excel文件中。可以使用以下代码实现:

public static void writeExcel(String filePath, List<List<String>> data) {
    Workbook workbook = new XSSFWorkbook();
    Sheet sheet = workbook.createSheet();

    int rowNum = 0;
    for (List<String> rowData : data) {
        Row row = sheet.createRow(rowNum++);
        int cellNum = 0;
        for (String cellData : rowData) {
            Cell cell = row.createCell(cellNum++);
            cell.setCellValue(cellData);
        }
    }

    try {
        FileOutputStream fos = new FileOutputStream(filePath);
        workbook.write(fos);

        workbook.close();
        fos.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

5. 注释解释

在上述代码中,我们使用了一些POI提供的API来实现Excel的读写操作。以下是对部分代码进行的注释解释:

  • Workbook:Excel工作簿,表示一个Excel文件。
  • Sheet:Excel工作表,表示Excel文件中的一个工作表。
  • Row:Excel行,表示工作表中的一行。
  • Cell:Excel单元格,表示一个单元格。

在读取Excel时,我们使用FileInputStream来读取Excel文件的输入流,然后使用WorkbookFactory.create(fis)来创建Workbook对象。通过workbook.getSheetAt(0)可以获取到第一个工作表。然后使用两层循环遍历每一行和每一个单元格,并将数据添加到List<List<String>>中。

在写入Excel时,我们使用XSSFWorkbook来创建Workbook对象,然后使用workbook.createSheet()来创建工作表。接着使用两层循环遍历数据列表,并将数据写入到单元格中。

6. 使用示例

在使用ExcelUtils工具类时,可以按照以下步骤进行:

public static void main(String[] args) {
    // 读取Excel文件
    List<List<String>> data = ExcelUtils.readExcel("path/to/excel.xlsx");

    // 打印读取的数据
    for (List<String> rowData : data) {
        for (String cellData : rowData) {
            System.out.print(cellData + "\t");
        }
        System.out.println();
    }

    // 写入Excel文件
    List<List<String>> newData = new ArrayList<>();
    newData.add(Arrays.asList("A1", "B1", "C1"));
    newData.add(Arrays.asList("A2", "B2", "C2"));
    newData.add(Arrays.asList("A3", "B3", "C3"));
    ExcelUtils.writeExcel("path/to/new-excel.xlsx", newData);
}

以上就是简单封装POI实现Java Excel操作的基本步骤和代码示例。通过这些代码,你可以在自己的项目中轻