记录一次采用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。初元复合肽吃什么治疗拉肚子
铁岭白癜风医院
阴囊湿疹
治支气管炎咳嗽的药有什么
血糖高吃什么
风湿
咳嗽药
相关阅读
-
搞笑GIF段子:从来不吃喝玩乐,我们工薪阶层怎么承受得起
冷笑话GIF冷笑话:从来不,别把头丢上来丢弃 1、和媳妇是情爱,在电子厂离家认识到的,这是第一次去她再婚遭遇的却说。 街上媳妇告诉她偏偏,都有最喜欢肉蜈蚣,可是局限于贫穷必要条件,
- 2025-09-09汇丰控股(00005)4月8日融资448.14万股
- 2025-09-09搞笑GIF段子:“毕业的时候那么多男生送你生日礼物,看你还记得几个”
- 2025-09-09知乎通过港交所聆讯?冲线双重主要上市的知乎究竟想干啥?
- 2025-09-09阳光保险拟赴港上市 集资规模至多可达20亿美元
- 2025-09-09搞怪GIF段子:姑娘,我让你上车,不是让你这样上车的
- 2025-09-09中国海洋石油(00883):人民币股份发在售价10.8元/股
- 2025-09-09开心麻花爆笑列车《一旁明月光》,赶紧上车!
- 2025-09-09招商证券:大众品Q2报表端有望复苏 锁定强经营链条企业
- 2025-09-09搞笑GIF趣图:妹子,你这衣服不适合插秧,回去换一件吧
- 2025-09-09新股公告|知乎-W(02390)4年初11日-4年初14日招股 拟发行2600万股