项目实战--SpringBoot整合EasyExcel实现数据导入导出
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.metadata.WriteSheet;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/excel")
public class ExcelController {
// 导入数据
@PostMapping("/import")
public String importData(MultipartFile file) {
try {
EasyExcel.read(file.getInputStream(), DataModel.class, new DataModelListener()).sheet().doRead();
return "导入成功";
} catch (Exception e) {
e.printStackTrace();
return "导入失败";
}
}
// 导出数据
@GetMapping("/export")
public void exportData(HttpServletResponse response) {
List<DataModel> data = new ArrayList<>();
// 添加数据到data
String fileName = "exportedData.xlsx";
try {
EasyExcel.write(response.getOutputStream(), DataModel.class)
.sheet("数据")
.doWrite(data);
} catch (Exception e) {
e.printStackTrace();
}
}
}
// 实体类映射Excel表头
class DataModel {
// 定义属性,与Excel表头对应
}
// 监听器,用于读取Excel数据
class DataModelListener extends AnalysisEventListener<DataModel> {
@Override
public void invoke(DataModel data, AnalysisContext context) {
System.out.println("读取到数据:" + data);
// 处理读取到的数据
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 所有数据解析完成后做的事情
}
}
这个代码实例展示了如何使用EasyExcel库在SpringBoot应用中导入和导出数据。导入时,使用EasyExcel.read()
方法读取文件,并使用自定义的监听器来处理读取到的数据。导出时,使用EasyExcel.write()
方法将数据写入响应输出流中,以便将其作为Excel文件下载。
评论已关闭