public static List<Object> readExcelToList(MultipartFile file) throws IOException { List<Object> list = new ArrayList<>(); InputStream inputStream = file.getInputStream(); ExcelReader excelReader = EasyExcel.read(inputStream, new AnalysisEventListener<Object>() { @Override public void invoke(Object data, AnalysisContext context) { list.add(data); } @Override public void doAfterAllAnalysed(AnalysisContext context) { // 解析结束销毁不用的资源 try { context.readWorkbookHolder().getInputStream().close(); } catch (IOException e) { e.printStackTrace(); } } }).build(); excelReader.read(new Sheet(1, 1, Object.class)); return list; } 方法中'Sheet' 为 abstract;无法实例化
时间: 2024-02-10 12:10:11 浏览: 134
(代码)SpringMVC第12讲:<mvc:annotation-driven/>
您好,这是因为Sheet类是EasyExcel库中的抽象类,不能直接实例化。您需要使用它的子类来创建Sheet对象。例如,如果您要读取第一个Sheet的所有行和列,并将它们作为Object类型添加到List中,可以使用以下代码:
```java
public static List<Object> readExcelToList(MultipartFile file) throws IOException {
List<Object> list = new ArrayList<>();
InputStream inputStream = file.getInputStream();
ExcelReader excelReader = EasyExcel.read(inputStream, new AnalysisEventListener<Object>() {
@Override
public void invoke(Object data, AnalysisContext context) {
list.add(data);
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 解析结束销毁不用的资源
try {
context.readWorkbookHolder().getInputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}).build();
// 读取第一个Sheet的所有行和列,并将它们作为Object类型添加到List中
excelReader.read(new Sheet(1, 1, Object.class));
return list;
}
```
在上面的代码中,我们使用Sheet的子类Sheet.Builder来创建Sheet对象,并指定要读取的Sheet的索引(从1开始),第一行的索引(从1开始),以及要读取的对象类型。然后,将Sheet对象传递给ExcelReader的read()方法,以开始读取Excel文件。
阅读全文