easyexcel读取excel文档返回数据 提炼公共方法
时间: 2023-11-16 17:16:30 浏览: 416
读取excel数据
将读取Excel文档并返回映射后的Java对象这一操作封装成公共方法可以提高代码的复用性。以下是一个简单的示例,可以帮助你了解如何使用EasyExcel封装读取Excel的公共方法:
```java
public class ExcelUtil {
/**
* 读取Excel数据并将其映射成Java对象
*
* @param inputStream 输入流
* @param clazz 映射的Java类
* @param sheetNo Sheet页码(从0开始)
* @param headRowNum Excel表头行号(从0开始)
* @return 映射后的Java对象列表
*/
public static <T> List<T> readExcel(InputStream inputStream, Class<T> clazz, int sheetNo, int headRowNum) throws IOException {
ExcelReader reader = EasyExcelFactory.read(inputStream).build();
ReadSheet readSheet = EasyExcelUtil.getReadSheet(clazz, sheetNo, headRowNum);
List<T> dataList = reader.read(readSheet);
reader.finish();
return dataList;
}
/**
* 获取读取数据的Sheet对象
*
* @param clazz 映射的Java类
* @param sheetNo Sheet页码(从0开始)
* @param headRowNum Excel表头行号(从0开始)
* @return ReadSheet对象
*/
public static <T> ReadSheet getReadSheet(Class<T> clazz, int sheetNo, int headRowNum) {
Sheet sheet = new Sheet(sheetNo, headRowNum, clazz);
sheet.useUnmergedCells(true);
sheet.setAutoWidth(true);
return EasyExcelUtil.getReadSheet(sheet);
}
}
```
在以上示例中,我们首先定义了一个`ExcelUtil`类,并在其中封装了两个公共方法:
- `readExcel`方法:用于读取Excel数据并将其映射成Java对象。
- `getReadSheet`方法:用于获取读取数据的Sheet对象。
使用这两个公共方法,我们可以很方便地读取Excel数据并将其映射成Java对象。例如:
```java
public class ReadExcelDemo {
public static void main(String[] args) throws IOException {
// 创建输入流,读取Excel文件
InputStream inputStream = new FileInputStream("test.xlsx");
// 读取Excel数据
List<User> userList = ExcelUtil.readExcel(inputStream, User.class, 0, 0);
// 遍历读取到的数据
for (User user : userList) {
System.out.println(user);
}
// 关闭流
inputStream.close();
}
}
```
在以上示例中,我们首先创建了一个输入流,用于读取Excel文件。然后,我们调用`ExcelUtil.readExcel`方法读取Excel数据,并将其映射成`User`对象。最后,我们遍历读取到的数据,并在控制台输出每一行数据的内容。需要注意的是,我们需要确保关闭流,以防止资源泄漏。
阅读全文