欢迎来访下代码,网站建设及模板提供商!
微信
在线客服QQ:644080923
收藏本站
帮助中心
关于我们
热搜:
代码授权
网站模板
客户案例
服务中心
建站教程
所有产品分类
网站模板
新闻资讯
博客媒体
图库图片
网络公司
信息科技
科技产品
客户案例
企业官网
综合门户
新闻媒体
购物商城
服务中心
系统部署
宝塔部署
证书安装
ICP备案
网站首页
网站模板
新闻资讯
博客媒体
图库图片
网络公司
信息科技
科技产品
客户案例
企业官网
综合门户
新闻媒体
购物商城
服务中心
系统部署
宝塔部署
证书安装
ICP备案
更多
建站教程
cms教程
cms文档
服务器教程
数据库教程
资源下载
您现在的位置:
网站首页
>
建站教程
>
easyexcel导入导出excel
发布时间:2023-12-28
热度: ℃
1、pom引入easyexcel包 ```java
com.alibaba
easyexcel
3.1.3
``` 2、导出excel ```java @RequestMapping(value = "/exportXls", method = RequestMethod.GET) public void exportXls(HttpServletRequest request, HttpServletResponse response)throws IOException { response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setCharacterEncoding("utf-8"); // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 String fileName = URLEncoder.encode("网点信息数据", "UTF-8").replaceAll("\\+", "%20"); response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); List
listDatas = networkTablService.list(); EasyExcel.write(response.getOutputStream(), NetworkTabl.class).sheet("sheet").doWrite(listDatas); } ``` 3、导入excel ```java /** * 通过excel导入数据 * * @param request * @param response * @return */ @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result> importExcel(HttpServletRequest request, HttpServletResponse response)throws IOException { JSONObject jsonObject = new JSONObject(); MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map
fileMap = multipartRequest.getFileMap(); for (Map.Entry
entity : fileMap.entrySet()) { MultipartFile file = entity.getValue();// 获取上传文件对象 try { NetworkTablListener networkTablListener = new NetworkTablListener(); EasyExcel.read(file.getInputStream(), NetworkTabl.class, networkTablListener).sheet(0).doRead(); List
listDatas = networkTablListener.getDataList(); List
dListDatas = networkTablService.list(); Map
dnetworkTablMap = EntityMd5Util.getNetworkTablMap(dListDatas); List
saveListDatas = new ArrayList<>(); List
updateListDatas = new ArrayList<>(); for(NetworkTabl networkTabl : listDatas){ String key = EntityMd5Util.getNetworkTablKey(networkTabl); String md5 = EntityMd5Util.getNetworkTablMd5(networkTabl); if(dnetworkTablMap.keySet().contains(key)){ NetworkTabl dNetworkTabl = dnetworkTablMap.get(key); String dmd5 = EntityMd5Util.getNetworkTablMd5(dNetworkTabl); if(!(md5.equals(dmd5))){ networkTabl.setId(dNetworkTabl.getId()); updateListDatas.add(networkTabl); } }else{ saveListDatas.add(networkTabl); } } if(CollectionUtils.isNotEmpty(saveListDatas)){ networkTablService.saveBatch(saveListDatas); } if(CollectionUtils.isNotEmpty(updateListDatas)){ networkTablService.updateBatchById(updateListDatas); } jsonObject.put("totalNum",listDatas.size()); } catch (Exception e) { log.error(e.getMessage(), e); return new Result<>().error500("导入失败"); } finally { try { file.getInputStream().close(); } catch (IOException e) { log.error(e.getMessage(), e); } } } return Result.OK(jsonObject); } ``` ```java package org.dkp.modules.system.excel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.read.listener.ReadListener; import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; import org.dkp.modules.system.entity.NetworkTabl; import java.util.ArrayList; import java.util.List; @Slf4j public class NetworkTablListener implements ReadListener
{ private List
dataList = new ArrayList<>(); public List
getDataList() { return dataList; } public NetworkTablListener(){ } /** * 这个每一条数据解析都会来调用 * * @param data one row value. Is is same as {@link AnalysisContext#readRowHolder()} * @param context */ @Override public void invoke(NetworkTabl data, AnalysisContext context) { log.info("解析到一条数据:{}", JSON.toJSONString(data)); dataList.add(data); } /** * 所有数据解析完成了 都会来调用 * * @param context */ @Override public void doAfterAllAnalysed(AnalysisContext context){ // 这里也要保存数据,确保最后遗留的数据也存储到数据库 log.info("所有数据解析完成!"); } } ```
上一篇:
git 修改历史文件步骤
下一篇:
SpringBoot官方文档地
相关阅读
后台出现弹框“ 请输入授权码“
linux scp命令并指定端口
宝塔部署Java系统(不与PHP冲突)
此网站无法提供安全连接(客户端和服务器不支持一般 SSL 协议版本或加密套件。)--TLS 1.1/TLS 1.2配置
linux 安装jdk 8u351
Idea启动报错:java.lang.NoClassDefFoundError: com/jfinal/server/jetty/ServerFactory
富文本上传文件出现“ 文件格式不允许 ”
postgresql 用户postgres 密码修改并配置必须密码登录
QQ在线咨询
售前客服
微信客服
工作日 9:00-18:00