若依框架主子表数据怎么导入导出
时间: 2023-12-05 11:41:33 浏览: 1077
若依框架提供了方便的主子表数据导入导出功能。具体步骤如下:
1.在实体类中使用@Excel注解标注需要导入导出的字段,同时使用@ExcelCollection注解标注子表对应的集合字段。
2.在Controller中使用EasyExcel工具类进行导入导出操作。具体代码如下:
```java
// 导出主子表数据
@RequestMapping("/export")
public void export(HttpServletResponse response) throws IOException {
// 查询数据
List<MainTable> list = mainTableService.getList();
// 导出操作
EasyExcelUtil.exportExcel(response, list, MainTable.class, "主子表数据");
}
// 导入主子表数据
@RequestMapping("/import")
public void importData(MultipartFile file) throws IOException {
// 导入操作
List<MainTable> list = EasyExcelUtil.importExcel(file, MainTable.class);
// 保存数据
mainTableService.saveList(list);
}
```
3.在EasyExcelUtil工具类中封装了导入导出的具体实现。具体代码如下:
```java
/**
* 导出Excel
*
* @param response HttpServletResponse
* @param list 数据列表
* @param clazz 实体类
* @param fileName 文件名
* @throws IOException IO异常
*/
public static void exportExcel(HttpServletResponse response, List<?> list, Class<?> clazz, String fileName) throws IOException {
// 设置响应头
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") + ".xlsx");
// 导出操作
EasyExcel.write(response.getOutputStream(), clazz).sheet("Sheet1").doWrite(list);
}
/**
* 导入Excel
*
* @param file 文件
* @param clazz 实体类
* @return 数据列表
* @throws IOException IO异常
*/
public static List<?> importExcel(MultipartFile file, Class<?> clazz) throws IOException {
// 导入操作
return EasyExcel.read(file.getInputStream(), clazz, new ExcelListener()).sheet().doReadSync();
}
```
阅读全文