将StudentInfo.xlsx里的内容读取出来并封装到StudentInfo类的对象中
StudentInfo类的字段分别对应了excel中的列名,合成结果如下
利用反射可以很好地实现对任意类的数据封装。实现如下
public class ExcelUtil {
public static <T> List<T> parseFromExcel(String path, Class<T> aimClass) {
return parseFromExcel(path, 0, aimClass);
}
@SuppressWarnings("deprecation")
public static <T> List<T> parseFromExcel(String path, int firstIndex, Class<T> aimClass) {
List<T> result = new ArrayList<T>();
try {
FileInputStream fis = new FileInputStream(path);
Workbook workbook = WorkbookFactory.create(fis);
//对excel文档的第一页,即sheet1进行操作
Sheet sheet = workbook.getSheetAt(0);
int lastRaw = sheet.getLastRowNum();
for (int i = firstIndex; i < lastRaw; i++) {
//第i行
Row row = sheet.getRow(i);
T parseObject = aimClass.newInstance();
Field[] fields = aimClass.getDeclaredFields();
for (int j = 0; j < fields.length; j++) {
Field field = fields[j];
field.setAccessible(true);
Class<?> type = field.getType();