Java将Excel数据全部加载在List

摘要:本文将介绍如何使用Java将Excel数据加载到List中。首先我们将介绍Excel文件的基本概念,然后讨论如何使用Java读取Excel文件,并将数据加载到List中。最后,我们将给出一个完整的示例代码,以帮助读者更好地理解和应用该方法。

引言

在日常开发中,我们经常需要处理Excel文件并从中提取数据。传统的方法是使用Excel编辑器手动复制和粘贴数据,但随着数据量的增加,这种方式变得不可行。幸运的是,Java提供了一种简单而强大的方法来处理Excel数据。本文将重点介绍如何使用Java将Excel数据全部加载在List中,以便于数据处理和分析。

Excel文件的基本概念

在开始之前,我们先来了解一下Excel文件的基本概念。Excel文件由一系列的工作表(Worksheets)组成,每个工作表包含多行和多列的单元格(Cell)。每个单元格可以包含不同类型的数据,如文本、数字、日期等。工作表由行(Row)和列(Column)组成,行由数字表示,列由字母表示。例如,A1代表第一行第一列的单元格,B2代表第二行第二列的单元格。

使用Java读取Excel文件

Java提供了多种方法来读取Excel文件,包括使用Apache POI、jExcelAPI和EasyExcel等开源库。在本文中,我们将使用Apache POI来实现这个功能。首先,我们需要在项目中引入Apache POI的依赖。

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

接下来,我们可以通过以下代码片段来读取Excel文件并将数据加载到List中:

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

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

public class ExcelReader {
    public static List<List<String>> readExcel(String filePath) {
        List<List<String>> data = new ArrayList<>();
        try (Workbook workbook = WorkbookFactory.create(new FileInputStream(new File(filePath)))) {
            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 STRING:
                            rowData.add(cell.getStringCellValue());
                            break;
                        case NUMERIC:
                            rowData.add(String.valueOf(cell.getNumericCellValue()));
                            break;
                        case BOOLEAN:
                            rowData.add(String.valueOf(cell.getBooleanCellValue()));
                            break;
                        default:
                            rowData.add("");
                            break;
                    }
                }
                data.add(rowData);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return data;
    }

    public static void main(String[] args) {
        List<List<String>> data = readExcel("data.xlsx");
        for (List<String> row : data) {
            for (String cell : row) {
                System.out.print(cell + "\t");
            }
            System.out.println();
        }
    }
}

以上代码首先创建一个Workbook对象,然后通过getSheetAt(0)方法获取第一个工作表,接着使用迭代器遍历每一行和每一个单元格,并根据单元格的类型将数据添加到List中。最后,我们可以通过调用readExcel方法来读取Excel文件,并使用嵌套的循环在控制台打印读取到的数据。

完整示例代码

以下是一个完整的示例代码,演示了如何使用Java将Excel数据全部加载在List中:

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

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

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