提供的方法还是有问题 Sheet sheet = new Sheet(1, 1, Object.class); excelReader.read(sheet);
时间: 2024-03-08 22:47:54 浏览: 61
C#读取Excel_sheet方法
非常感谢您的指正,您说得对,这里还有一个问题,就是 `Object.class` 不能直接使用,需要传入一个具体的实体类,因为 Excel 解析框架需要知道每一列数据对应的实体类属性。可以按照下面的代码进行修改:
```java
public static List<T> readExcelToList(MultipartFile file, Class<T> clazz) throws IOException {
List<T> list = new ArrayList<>();
InputStream inputStream = file.getInputStream();
ExcelReader excelReader = EasyExcel.read(inputStream, new AnalysisEventListener<T>() {
@Override
public void invoke(T data, AnalysisContext context) {
list.add(data);
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 解析结束销毁不用的资源
try {
context.readWorkbookHolder().getInputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}).build();
Sheet sheet = new Sheet(1, 1, clazz);
excelReader.read(sheet);
return list;
}
```
这里我们传入了一个 `Class<T>` 类型的参数 `clazz`,表示实体类的类型。然后在创建 `Sheet` 对象时,将 `clazz` 作为参数传入,这样就能够正确地解析 Excel 文件了。
阅读全文