用java代码解析excel生成一个实体类demo
时间: 2024-05-08 15:15:19 浏览: 152
我们可以使用Apache POI库来解析Excel文件并生成实体类。下面是一个简单的示例代码:
```java
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 ExcelParser {
public static void main(String[] args) throws Exception {
String excelFilePath = "path/to/excel/file.xlsx";
List<Person> persons = parseExcel(excelFilePath);
for (Person person : persons) {
System.out.println(person);
}
}
public static List<Person> parseExcel(String excelFilePath) throws Exception {
List<Person> persons = new ArrayList<>();
FileInputStream inputStream = new FileInputStream(new File(excelFilePath));
Workbook workbook = WorkbookFactory.create(inputStream);
Sheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
if (row.getRowNum() == 0) {
// Skip header row
continue;
}
Iterator<Cell> cellIterator = row.cellIterator();
Person person = new Person();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
int columnIndex = cell.getColumnIndex();
switch (columnIndex) {
case 0:
person.setName(cell.getStringCellValue());
break;
case 1:
person.setAge((int) cell.getNumericCellValue());
break;
case 2:
person.setEmail(cell.getStringCellValue());
break;
case 3:
person.setPhone(cell.getStringCellValue());
break;
}
}
persons.add(person);
}
workbook.close();
inputStream.close();
return persons;
}
}
class Person {
private String name;
private int age;
private String email;
private String phone;
// getters and setters
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", email='" + email + '\'' +
", phone='" + phone + '\'' +
'}';
}
}
```
在这个示例中,我们首先定义了一个`Person`实体类,表示Excel中的每一行数据。然后我们定义了一个`parseExcel`方法来解析Excel文件并返回一个`Person`实体类的列表。在`parseExcel`方法中,我们使用`FileInputStream`读取Excel文件,然后使用`WorkbookFactory`创建一个`Workbook`对象。接下来,我们获取第一个工作表并使用迭代器遍历每一行数据。对于每一行数据,我们使用另一个迭代器遍历每个单元格,并根据单元格的索引设置`Person`实体类的属性。最后,我们将每个`Person`实体类添加到一个列表中并返回。
在`main`方法中,我们调用`parseExcel`方法并打印每个`Person`实体类的信息。这个示例只是一个简单的演示,你可以根据实际需求自定义`Person`实体类的属性和`parseExcel`方法的逻辑。
阅读全文