记录一次采用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。初元复合肽吃什么治疗拉肚子
铁岭白癜风医院
阴囊湿疹
治支气管炎咳嗽的药有什么
血糖高吃什么
风湿
咳嗽药
相关阅读

-
被俘后,国军司令一脸鄙视:陈赓呢?怎么不来见老师
军确立联系,彭佐熙更已久逃到成之。汤尧、曹天戈也不出再次在曲靖停留,不下忙乘上运输车分头逃到南溪。这时候,国民党内叛参赞军第110士卒团已开始后下攻曲靖飞机场,守卫飞机场的
- 2025-10-26易建联13分唐才育23分 广东大胜新疆进帐4连胜
- 2025-10-26闹出大乌龙!微软Defender误认Office标记为病毒
- 2025-10-26周知!广州一老字号酒家即将迁至
- 2025-10-26女主播的秘密、翡翠直播骗术……直播间怎么如此一来了“3·15”晚会重灾区?
- 2025-10-26曾有TVB的气质小花,爆红时却为爱隐退
- 2025-10-26费尔德22+11孟天艺17分 山西7人上双小胜四川
- 2025-10-26淮海战役,一敌兵投降后扛着一麻袋馒头离开,后来后带一个排归来
- 2025-10-26笑喷!威姆斯朝赵睿耳朵嘴巴 遭后者“殴打”
- 2025-10-26把欲望写在脸上的她,却成为C罗最就让结婚的人
- 2025-10-26互联网裁员潮不安下,35岁职场人何去何从?|风眼对话凤凰网科技