将excel中的数据按行遍历赋值给实体类
时间: 2023-11-27 17:54:59 浏览: 132
将Oracle数据库中的数据写入Excel
首先,需要使用Java中的Apache POI库来读取Excel文件中的数据。可以使用以下代码来打开Excel文件并读取数据:
```java
FileInputStream file = new FileInputStream(new File("文件路径"));
Workbook workbook = new XSSFWorkbook(file);
Sheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
// TODO: 读取并处理行数据
}
```
接下来,我们可以定义一个实体类来表示每一行的数据,并使用该类的对象来存储每一行的数据。假设我们要读取的Excel文件中包含两列数据,分别为“姓名”和“年龄”,那么可以定义如下的实体类:
```java
public class Person {
private String name;
private int age;
// 构造方法和getter/setter方法省略
}
```
在循环中,我们可以使用以下代码来遍历每一行数据,并将其赋值给`Person`对象:
```java
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Person person = new Person();
person.setName(row.getCell(0).getStringCellValue());
person.setAge((int) row.getCell(1).getNumericCellValue());
// TODO: 处理Person对象
}
```
在这里,我们使用`row.getCell(0)`和`row.getCell(1)`来获取姓名和年龄单元格的值,并使用`person.setName()`和`person.setAge()`方法来将值赋给`Person`对象。
最后,我们可以将每个`Person`对象添加到一个`List`中,以便在处理完所有数据后进行进一步操作。
完整代码示例:
```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.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) {
try {
FileInputStream file = new FileInputStream(new File("文件路径"));
Workbook workbook = new XSSFWorkbook(file);
Sheet sheet = workbook.getSheetAt(0);
List<Person> persons = new ArrayList<>();
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Person person = new Person();
person.setName(row.getCell(0).getStringCellValue());
person.setAge((int) row.getCell(1).getNumericCellValue());
persons.add(person);
}
// TODO: 处理persons列表
workbook.close();
file.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
```
阅读全文