@ExcelEntity注解怎么用
时间: 2024-03-14 12:43:12 浏览: 20
`@ExcelEntity` 是 EasyExcel 开源框架中的一个注解,用于标识一个 Java 对象需要被导出或导入为 Excel 文件中的一个 sheet。使用方法如下:
1. 在需要导入导出的 Java 对象上添加 `@ExcelEntity` 注解,如下所示:
```java
@ExcelEntity(name = "用户信息")
public class User {
@ExcelProperty(value = "ID", index = 0)
private Long id;
@ExcelProperty(value = "姓名", index = 1)
private String name;
@ExcelProperty(value = "年龄", index = 2)
private Integer age;
// 省略 getter 和 setter 方法
}
```
2. 在控制器中使用 EasyExcel 的 API 进行导入导出操作,如下所示:
```java
@RestController
@RequestMapping("/api/excel")
public class ExcelController {
@GetMapping("/export")
public void export(HttpServletResponse response) throws IOException {
// 1. 设置响应头信息,告诉浏览器下载的是 Excel 文件
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 防止中文乱码
String fileName = URLEncoder.encode("用户信息.xlsx", "UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
// 2. 获取数据列表
List<User> userList = userService.list();
// 3. 调用 EasyExcel 的 API 进行导出操作
ExcelWriter writer = EasyExcel.write(response.getOutputStream()).build();
WriteSheet sheet = EasyExcel.writerSheet().build();
writer.write(userList, sheet);
writer.finish();
}
@PostMapping("/import")
public void importData(@RequestParam("file") MultipartFile file) throws IOException {
// 1. 调用 EasyExcel 的 API 进行导入操作
ExcelReader reader = EasyExcel.read(file.getInputStream()).build();
ReadSheet sheet = EasyExcel.readSheet().build();
List<User> userList = reader.read(sheet).head(User.class).sheet().doReadSync();
// 2. 将数据保存到数据库中
userService.saveBatch(userList);
}
}
```
通过上述代码,我们可以方便地实现 Excel 文件的导入和导出操作。需要注意的是,EasyExcel 还提供了许多其他的注解和 API,可以根据具体需求进行选择和使用。