Java读取Excel数据的工具类

在日常的开发工作中,我们经常需要读取Excel中的数据来进行各种处理和分析。Java作为一门强大的编程语言,提供了丰富的库和工具类来处理Excel文件。本文将介绍一种常用的Java工具类,用于读取Excel数据并进行相关操作。

1. Excel文件格式

Excel文件是一种常见的电子表格文件格式,可以存储大量的数据和复杂的表格结构。在Java中,我们可以使用Apache POI库来处理Excel文件。在使用之前,需要先了解Excel文件的基本结构。

一个Excel文件通常由多个工作表(Sheet)组成,每个工作表又由多个行(Row)组成,每行又由多个单元格(Cell)组成。每个单元格可以存储不同类型的数据,如文本、数字、日期等。

2. Excel读取工具类

下面是一个简单的Java工具类,用于读取Excel文件中的数据。

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

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ExcelReader {

    public List<List<String>> readExcel(String filePath) {
        List<List<String>> data = new ArrayList<>();
        try (FileInputStream fis = new FileInputStream(new File(filePath));
             Workbook workbook = WorkbookFactory.create(fis)) {

            Sheet sheet = workbook.getSheetAt(0);
            Iterator<Row> rowIterator = sheet.iterator();

            while (rowIterator.hasNext()) {
                Row row = rowIterator.next();
                List<String> rowData = new ArrayList<>();

                Iterator<Cell> cellIterator = row.cellIterator();
                while (cellIterator.hasNext()) {
                    Cell cell = cellIterator.next();

                    switch (cell.getCellType()) {
                        case BOOLEAN:
                            rowData.add(String.valueOf(cell.getBooleanCellValue()));
                            break;
                        case NUMERIC:
                            rowData.add(String.valueOf(cell.getNumericCellValue()));
                            break;
                        case STRING:
                            rowData.add(cell.getStringCellValue());
                            break;
                        default:
                            rowData.add("");
                    }
                }

                data.add(rowData);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        return data;
    }
}

上述代码通过Apache POI库,使用WorkbookFactory类创建一个Workbook对象,并通过getSheetAt(0)方法获取第一个工作表。然后,它使用迭代器遍历每一行,并在每一行中使用迭代器遍历每个单元格。根据单元格的类型,将对应的数据添加到rowData列表中,并最终将其添加到data列表中。

3. 使用示例

下面是一个使用示例,演示如何使用上述工具类来读取Excel数据。

public class Main {

    public static void main(String[] args) {
        ExcelReader reader = new ExcelReader();
        List<List<String>> data = reader.readExcel("data.xlsx");

        for (List<String> rowData : data) {
            for (String cellData : rowData) {
                System.out.print(cellData + "\t");
            }
            System.out.println();
        }
    }
}

上述代码首先创建一个ExcelReader对象,然后调用其readExcel方法来读取Excel数据。最后,通过嵌套的循环遍历data列表,并打印每个单元格的数据。

总结

本文介绍了一种常用的Java工具类,用于读取Excel文件中的数据。通过使用Apache POI库,我们可以方便地处理Excel文件,并从中提取所需的数据。希望本文对您在使用Java读取Excel数据时有所帮助。


旅行图(Journey):

journey
    title Java读取Excel数据的工具类
    section 学习Excel文件格式
    section 编写Excel读取工具类
    section 使用示例
    section 总结

甘特图(Gantt):

gantt
    title Java读取Excel数据的工具类
    dateFormat  YYYY-MM-DD
    section 学习Excel文件格式
    学习Excel文件格式     :done, 2021-09-01, 1d
    section 编写Excel读取工具类
    编写工具类           :done, 2021-09-02, 2d
    section 使用示例
    使用示例             :done, 2021-09