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