首页 >> 中医药茶

记录一次使用Easyexcel上作用于入数据库和导出EXCEL的实现过程

发布时间:2025年08月08日 12:19

ist) {return userMapper.saveList(list);} //选取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。

贵阳男科检查哪家医院好
浙江男科医院挂号咨询
云南白癜风医院那家比较好
潍坊银屑病治疗费用
重庆白癜风治疗哪家好

上一篇: 丰田汽车和大众、车的质量怎么那么好呢?原因居然是这样的!

下一篇: 我的天!李小冉是有多白,同框小2岁刘涛玲珑妹妹,章子怡也失了色

友情链接