使用EasyExcel导入、根据模板下载(附前后端代码)

使用以上导包如果报错 NoClassDefFoundError,可能需要引入cglib包

 1、excel的导入

前端代码:

:

由于前端type="file"的样式固定,可以隐藏input,通过其他按钮点击触发上传,用户上传文件后input的值发生变化触发change事件调用ajax

	$('#fileId').change(function(){//获取用户上传文件var files = $('#fileId')[0].filesvar i_type = 0;//定义传参格式var data = new FormData();data.append('avatar', files[0]);data.append('i_type',i_type);$.ajax({url: cp + 'mgt/depotwares/import.do',type: 'POST',data: data,cache: false,processData: false,contentType: false,success:function (data) {var result = JSON.parse(data);$("#fileId").val('');if(result.s_code == "000000"){var sucess = result.o_data[0]var fail = result.o_data[1]layer.confirm(("导入成功! 成功:"+sucess+",失败:"+fail),{btn: ['关闭','下载失败信息'] //按钮}, function(){//是layer.closeAll();},function(){//let downloadurl="http://localhost:8081/fhxhcps//mgt/depotwares/downloadfail.do";let label = $("<a>");label.prop("href",downloadurl);$("body").append(label)label[0].click();label.remove();});}else{layer.msg(result.s_msg)}}});});

 后端代码:

controller层接收

	public void WaresBatchUpdate(HttpServletRequest request,HttpServletResponse response,@RequestParam(required = false, value = "avatar") MultipartFile filename,HttpSession session,  Model model,String i_type) throws IOException

 实现类:

	ResultMap resMap = new ResultMap();//更新条数结果返回List list = new ArrayList();//记录所有excel数据List lists = new ArrayList();//用于写入保存失败数据List<ExcelVO> failList = new ArrayList();List<PvdSettleVO> pvdfailList = new ArrayList<>();List<IWaresVO> iWaresList = new ArrayList<>();//记录成功条数int sucess = 0;//记录失败条数int fail = 0;//判断当前修改税务编码还是供应商Workbook workbook = null;Properties properties = PropertiesUtil.load("pdf_config/exportPdf.properties");String wordGenerDir = properties.getProperty("excel.taxno.savepath");String name = Str(userMap.get("s_name"),"");String sUser = Str(userMap.get("s_user"),"");Date now = new Date();SimpleDateFormat outFormat = new SimpleDateFormat("yyyyMMddHHmmss");String time = outFormat.format(now);String newFile = name+sUser+"DT"+time +file.getOriginalFilename();String path2 = wordGenerDir+newFile;ResultMap resMap = new ResultMap();File foler = null;// 读取excel文件FileInputStream in = null;// 获取工作簿Workbook workbook = null;//获取路径foler = new File(path2);String path = foler.getAbsolutePath();String filetype = path.substring(path.lastIndexOf("."));try {file.transferTo(foler);File dest = new File(path);in = new FileInputStream(path);if (!foler.getParentFile().exists()) {//创建foler.getParentFile().mkdirs();}if (filetype.equals(".xls")) {workbook = new HSSFWorkbook(in);} else if (filetype.equals(".xlsx")) {workbook = new XSSFWorkbook(in);} else {resMap.setS_code(Constants.RES_MSG_ERROR);resMap.setS_msg("文件类型必须是xls或xlsx:" + file.getOriginalFilename());dest.delete();return resMap;}}catch (Exception e){System.out.println("文件异常");}finally {try {if (in != null) {in.close();}if (workbook != null) {workbook.close();}} catch (IOException e) {resMap.setS_msg("关闭流失败");}}try {//获取sheet1Sheet sheet = workbook.getSheetAt(0);//获取表中内容int rowCount = sheet.getPhysicalNumberOfRows();for (int rowNum = 1; rowNum < rowCount; rowNum++) {String value1 = "";String value2 = "";String value3 = "";Row rowData = sheet.getRow(rowNum);Map map = new HashMap();if (rowData != null) {Cell cell1 = rowData.getCell(0);Cell cell2 = rowData.getCell(1);Cell cell3 = rowData.getCell(2);value1 = ExcelUtils.getCellValue(cell1);value2 = ExcelUtils.getCellValue(cell2);value3 = ExcelUtils.getCellValue(cell3);map.put("col1", value1);map.put("col2", value2);map.put("col3", value3);lists.add(map);}}//excel写入未导入成功信息//repath即为存放文件路径(绝对路径+名称)ExcelWriterBuilder write = EasyExcel.write(repath);ExcelWriterSheetBuilder sheet1 = write.sheet();sheet1.doWrite(failList);

2.Excel的模板下载

这里用的是在本地下载文件,指定一个文件路径创建excel模板,通过流的方式直接下载

前端代码:直接通过访问接口方式建立下载链接

$("#downloadWare").click(function () {$.ajax({url: cp + 'mgt/depotwares/downloadWareTemplete.do',method: 'get',type:"application/vnd.ms-excel",responseType:"blob",success: function(data){let downloadurl="http://localhost:8081/depotwares/downloadWareTemplete.do";let label = $("<a>");label.prop("href",downloadurl);$("body").append(label)label[0].click();label.remove();layer.msg("下载成功")}})})

后端代码:

try {// path是指下载的文件的路径。File file = new File(ExcelUtils.getFolerPath());// 取得文件名。String filename = file.getName();// 以流的形式下载文件。InputStream fis = new BufferedInputStream(new FileInputStream(ExcelUtils.getFolerPath()));byte[] buffer = new byte[fis.available()];fis.read(buffer);fis.close();// 清空responseresponse.reset();// 设置response的Headerif(request.getHeader("user-agent").toLowerCase().indexOf("firefox")>-1){response.setHeader("Content-Disposition","attachment;filename=" +new String(filename.getBytes("utf-8"),"ISO-8859-1"));}else {response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "utf-8"));}response.addHeader("Content-Length", "" + file.length());OutputStream toClient = new BufferedOutputStream(response.getOutputStream());response.setContentType("application/octet-stream");toClient.write(buffer);toClient.flush();toClient.close();} catch (Exception e) {response.reset();response.setContentType("application/json");response.setCharacterEncoding("utf-8");resMap.setS_code(Constants.RES_CODE_ERROR);resMap.setS_msg(Constants.RES_MSG_ERROR);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524487.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IOS – OpenGL ES 图像凹面镜移动效果 GPUImagePinchDistortionFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

云存储精华问答 | 如何选择混合云提供商?

云存储是一种云计算模型&#xff0c;可通过云计算提供商&#xff08;将数据存储作为服务进行管理和运营&#xff09;在 Internet 上存储数据。该模型按需适时提供容量和成本&#xff0c;无需您自行购买和管理数据存储基础设施。因此&#xff0c;您可以实现敏捷性、全球规模和持…

IOS – OpenGL ES 图像凹面镜放大效果 GPUImagePinchDistortionFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

第八篇: 消息总线(Spring Cloud Bus)(Finchley版本)V2.0_dev

前言: Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来。 它可以用于广播配置文件的更改或者服务之间的通讯&#xff0c;也可以用于监控。 本文要讲述的是用Spring Cloud Bus实现通知微服务架构的配置文件的更改。 一、准备工作 本文还是基于上一篇文章来实现。按照…

IOS – OpenGL ES 图像哈哈镜效果 GPUImageStretchDistortionFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

要闻君说:facebook迎来“全球宕机”惊险时刻;吸引大牛!拼多多成立了技术委员会;胡晓明卸任庚接任,阿里云计算迎来法人变更...

关注并标星星CSDN云计算每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 大家好&#xff01;偶是要闻君。近日网传原百度智能硬件事业部总经理、渡鸦科技创始人吕骋已成立AI娱乐公司一家&#xff0c;并已获得来自YCombinator中国等投资&#xff1b;据早前…

IOS – OpenGL ES 图像水晶球效果 GPUImageGlassSphereFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

大数据下的中国女人,看完惊呆了

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 辣道娘 转自 | 凯叔讲故事&#xff08;ID&#xff1a;kaishujianggushi&#xff09;这个时代的女人比任何一个时代更累。为什么这么呢&#xff1f;因为她们身兼多职。——凯叔美国国家统计局曾对各国劳动人口的总数和人口参…

IOS – OpenGL ES 图像球形折射 GPUImageSphereRefractionFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

云漫圈 | 谈谈怎么做【服务隔离】

戳蓝字“CSDN云计算”关注我们哦&#xff01;转自&#xff1a; 孤独烟引言OK&#xff0c;如下图所示那显而易见&#xff0c;做服务隔离的目的就是避免服务之间相互影响。毕竟谁也不能说自己的微服务百分百可用&#xff0c;如果不做隔离&#xff0c;一旦一个服务出现了问题&…

linux搭建SonarQube_Oracle

文章目录一、安装声明二、下载软件2.1. sonarqube2.2. sonar-scanner-cli三、SonarQube实战3.1. 解压3.2. 配置3.3. 环境变量3.4. 启动Sonarqube3.5. 访问Sonarqube四、SonarQube 整合Oracle4.1. 创建命名空间4.2. 创建用户和赋予权限4.3. 添加数据库配置4.4. 添加Oracle数据库…

IOS – OpenGL ES 图像色调分离噪点效果 GPUImagePosterizeFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

数据解读京东上最受欢迎的面包

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a; 黄超 就职顶新集团智能科技公司 数据从业者前言什么样的面包品牌最好卖&#xff1f;什么样的口感最受欢迎&#xff1f;相信每一位喜欢面包的朋友都会关心这些问题。本文通过爬取京东面包类数据&#xff0c;一方面回…

linux 下载mysql5.7.22

一、软件下载方式 第一种方式&#xff1a; 下载到本地&#xff0c;再从本地上传服务器上 第二种方式(推荐使用)&#xff1a; 使用wget软件链接直接下载到传服务器上 二、软件下载流程 官网地址 https://dev.mysql.com/downloads/mysql/ 第一种方式&#xff1a;点击即可…

IOS – OpenGL ES 图像CGA色彩滤镜 GPUImageCGAColorspaceFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

大数据背后的无奈与焦虑:“128元连衣裙”划分矮穷挫与白富美?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a; 刘丹我们通过卖东西收集数据&#xff0c;数据是阿里最值钱的财富。——马云春天万物复苏&#xff0c;沉睡了一个冬季的爱美之心呼之欲出&#xff0c;连衣裙在姑娘的心里发了芽&#xff0c;不过这次有些意外&#x…

Linux安装SonarQube和sonar-scanner详细安装及配置

文章目录技术选型一、快速入门1.1 上传、解压、创建用户、启动1.2 创建用户(elasticsearch不能以root用户启动)&#xff0c;并赋予权限1.3 切换用户&#xff0c;启动SonarQube1.4. 浏览器验证二、配置数据库信息&#xff1a;2.1 编辑sonar.properties文件2.2 添加数据库信息&am…

IOS – OpenGL ES 图像柏林噪点/花边噪点 GPUImagePerlinNoiseFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

win10 下安装、配置、启动mysql5.7

文章目录1. 下载MYSQL2. 解压文件3. 文件移动4. 新建my.ini5. 配置环境变量6. MYSQL安装7. my.ini配置1. 下载MYSQL 前期准备&#xff1a;安装链接&#xff1a; https://blog.csdn.net/qq_28569585/article/details/79072805 https://dev.mysql.com/downloads/mysql/5.7.html#d…

要闻君说:华为与故宫携手共建智慧紫禁城;央视315曝光瞄准大数据黑市;华为官宣称自己也有操作系统了;美国夸口启动6G研发?...

关注并标星星CSDN云计算每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 大家好&#xff01;偶是要闻君。据说刚刚过去不久的315大曝光还真是“惊掉下巴”的节奏&#xff0c;这不要闻君也精选了一条&#xff0c;随着看看&#xff1f;文/要闻君近日&#x…