easyexcel工具类
时间: 2023-08-24 18:09:52 浏览: 46
EasyExcel 是一个基于 Java 的简单、高效、无侵入的 Excel 文件读写工具包,可以快速方便地实现 Excel 文件的读写操作。下面是一个 easyexcel 工具类的示例:
```java
public class ExcelUtil {
/**
* 读取 Excel 文件内容
*
* @param inputStream Excel 文件输入流
* @param clazz 数据模型类
* @return 读取结果
*/
public static <T> List<T> readExcel(InputStream inputStream, Class<T> clazz) {
List<T> dataList = new ArrayList<>();
try {
// 创建读取 Excel 文件的工作簿对象
ExcelReader excelReader = new ExcelReader(inputStream, null, new AnalysisEventListener<T>() {
@Override
public void invoke(T data, AnalysisContext context) {
// 读取到一行数据时的回调方法
dataList.add(data);
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 读取结束时的回调方法
}
});
// 读取 Excel 文件中的数据并转换为指定的数据模型类
excelReader.read(new Sheet(1, 1, clazz));
} catch (Exception e) {
e.printStackTrace();
}
return dataList;
}
/**
* 写入数据到 Excel 文件
*
* @param outputStream Excel 文件输出流
* @param dataList 数据列表
* @param clazz 数据模型类
*/
public static <T> void writeExcel(OutputStream outputStream, List<T> dataList, Class<T> clazz) {
try {
// 创建写入 Excel 文件的工作簿对象
ExcelWriter excelWriter = new ExcelWriter(outputStream, ExcelTypeEnum.XLSX);
// 创建写入 Excel 文件的 sheet 对象
Sheet sheet = new Sheet(1, 0, clazz);
// 写入数据到 Excel 文件
excelWriter.write(dataList, sheet);
// 关闭写入 Excel 文件的工作簿对象
excelWriter.finish();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
使用示例:
```java
// 读取 Excel 文件
List<User> userList = ExcelUtil.readExcel(new FileInputStream("user.xlsx"), User.class);
// 写入数据到 Excel 文件
List<User> userList = new ArrayList<>();
userList.add(new User("张三", 30, "男"));
userList.add(new User("李四", 25, "女"));
ExcelUtil.writeExcel(new FileOutputStream("user.xlsx"), userList, User.class);
```
其中 `User` 类为数据模型类,示例代码如下:
```java
public class User {
private String name;
private Integer age;
private String gender;
public User() {
}
public User(String name, Integer age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
// getter 和 setter 方法省略
}
```
以上代码仅为示例,具体的应用场景中可能需要根据实际需求进行适当的修改。