将excel中的数据按行遍历赋值给实体类并展示到前端页面
时间: 2023-11-27 15:55:36 浏览: 74
java反射遍历实体类属性和类型,并赋值和获取值的简单方法
5星 · 资源好评率100%
假设你有一个Excel文件,其中包含以下数据:
| 姓名 | 年龄 | 性别 |
| ---- | ---- | ---- |
| 张三 | 18 | 男 |
| 李四 | 20 | 女 |
| 王五 | 22 | 男 |
你可以使用Apache POI库来读取Excel文件,并将每一行数据转化为实体类的实例。以下是一个Java代码示例:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelReader {
public static void main(String[] args) {
String filePath = "path/to/your/excel/file.xlsx";
List<Person> persons = readExcel(filePath);
// 将persons传给前端页面展示
}
private static List<Person> readExcel(String filePath) {
List<Person> persons = new ArrayList<>();
try {
FileInputStream inputStream = new FileInputStream(new File(filePath));
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet sheet = workbook.getSheetAt(0); // 假设数据在第一个sheet中
Iterator<Row> rowIterator = sheet.iterator();
rowIterator.next(); // 跳过第一行表头
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.iterator();
String name = cellIterator.next().getStringCellValue();
int age = (int) cellIterator.next().getNumericCellValue();
String sex = cellIterator.next().getStringCellValue();
persons.add(new Person(name, age, sex));
}
workbook.close();
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return persons;
}
static class Person {
private String name;
private int age;
private String sex;
public Person(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
// getter and setter
}
}
```
上述代码中,我们首先使用`FileInputStream`和`XSSFWorkbook`来读取Excel文件。然后,在`Sheet`对象上使用`iterator()`方法来遍历每一行数据,使用`Cell`对象来获取每个单元格的值。最后,我们将每行数据转化为`Person`实例,并将这些实例添加到`persons`列表中。最终,我们可以将`persons`列表传给前端页面并展示。
阅读全文