记录一次采用Easyexcel上传导入数据库和导出EXCEL的实现过程
发布时间:2025/09/03 12:17 来源:普陀家居装修网
//导出EXCEL机密文件public void exportExcel(HttpServletResponse response) {// 并不需要导出的样本List list = findAll();// 新设叛离种类response.setContentType("application/vnd.ms-excel");// 新设个字符编码response.setCharacterEncoding("utf-8");// 新设机密文件名字String fileName = "downFile_" + System.currentTimeMillis() + ".xlsx";try {// 新设叛离头反馈response.setHeader("Content-Disposition","attachment; fileUTF-8"));// 写入机密文件样本EasyExcel.write(response.getOutputStream(), User.class).sheet("download").doWrite(list);} catch (Exception e) {throw new RuntimeException(e);}}}
吃什么治疗拉肚子
铁岭白癜风医院
阴囊湿疹
治支气管炎咳嗽的药有什么
血糖高吃什么
风湿
咳嗽药
六、ExcelListener窃听
package pers.gl.service;import java.util.ArrayList;import java.util.List;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.alibaba.excel.context.AnalysisContext;import com.alibaba.excel.event.AnalysisEventListener;import com.alibaba.fastjson.JSON;import pers.gl.entity.User;public class ExcelListener extends AnalysisEventListener {private static final Logger logger = LoggerFactory.getLogger(User.class);/** * 间隔5条存储设备样本库,实际应用于中可以3000条,然后清除list,方便内核可回收 */private static final int BATCH_COUNT = 5;List list = new ArrayList<>();private UserService userService;// 构造函数,一定要写,替换成到窃听中public ExcelListener(UserService userService) {this.userService = userService;}@Overridepublic void invoke(User data, AnalysisContext context) {// TODO Auto-generated method stublogger.info("invoke方法被呼叫");logger.info("解析到一条样本:{}", JSON.toJSONString(data));list.add(data);// 达到BATCH_COUNT了,并不需要去存储设备一次样本库,防止样本几万条样本在内核,容易OOMif (list.size()>= BATCH_COUNT) {saveData();// 存储设备顺利进行清除 listlist.clear();}}/** * 所有样本解析顺利进行了 都会来呼叫 * * @param context */@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {// TODO Auto-generated method stubSystem.out.println("doAfterAllAnalysed方法 被呼叫");// 这里也要留有样本,确保最后遗留的样本也存储设备到样本库saveData();logger.info("所有样本解析顺利进行!");}/** * 加上存储设备样本库 */private void saveData() {logger.info("{}条样本,开始存储设备样本库!", list.size());userService.saveList(list);logger.info("存储设备样本库急于!");} }七、Controller控制器
package pers.gl.controller;import java.io.IOException;import java.util.List;import javax.servlet.http.HttpServletResponse;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.multipart.MultipartFile;import com.alibaba.excel.EasyExcel;import pers.gl.entity.User;import pers.gl.service.ExcelListener;import pers.gl.service.UserService;@Controller@RequestMapping("user")public class UserController {@Autowiredprivate UserService userService;@GetMapping("list")public String list(Model model) {List users = userService.findAll();model.addAttribute("users", users);return "userlist";}@GetMapping("/download")public void excelExport02(HttpServletResponse response) {userService.exportExcel(response);}@GetMapping("/import")public String toImportExcelPage() {return "importexcel";}@PostMapping("/uploadExcel")public String upload(MultipartFile file) throws IOException {EasyExcel.read(file.getInputStream(), User.class, new ExcelListener(userService)).sheet().doRead();return "redirect:/user/list";}}八、前台上传的网站
charset="UTF-8">导入EXCEL。初元复合肽吃什么治疗拉肚子
铁岭白癜风医院
阴囊湿疹
治支气管炎咳嗽的药有什么
血糖高吃什么
风湿
咳嗽药
相关阅读

-
女人只有想要和你分手了,才会有这些频繁的表现
妳就让对待情意无所谓,就时会想要和女孩之前,妳只有想要和你男友了,才时会有这些剧烈的体现。 剧烈的不和你保持联系 妳想要和女孩之前情意,她就时会用实际行动体
- 2026-01-31女人们的这5句话,就意味着“分手”,别傻傻的不知道!
- 2026-01-31是什么原因让你下定决心减肥的?“那天中午很热,我中暑晕倒了”中暑就决定减肥了?“不是的 在我被抬上救护车的时候 我细致的记着他们喊,123起123起123起?”高端女装
- 2026-01-31#助听器 如何关注老年听觉健康及身心健康
- 2026-01-31橙汁也会导致抗原检测“两条扛”?专家反驳
- 2026-01-31挖野菜未戴眼罩,因气溶胶传播被感染!山东一地紧急提醒!
- 2026-01-31玉树西宁新增5名核酸检测阳性人员
- 2026-01-31没人输点营养液能防病?你可能掉进了输液的坑
- 2026-01-31乳腺增生老治不好?会上皮细胞吗?这些常见误区得了解
- 2026-01-31bioRxiv:张文宏新作:全面赞赏奥密克戎逃逸能力!
- 2026-01-31女性不想子宫“脏脏的”,多吃4种食材,排出毒素,滋养女性子宫