当前位置: 首页 > news >正文

周口市网站建设_网站建设公司_SSG_seo优化

北京网站备案核验单,国际新闻最新消息十条2022,湖南建立网站营销设计,手机网站翻译成中文前言#xff1a;在这里分享自己第一次使用EasyExcel并且编写工具类#xff0c;且在接口中支持excel文件下载的一系列流程#xff0c;包含所有前后端#xff08;JSJAVA#xff09;完整代码#xff0c;可以根据自己需要自行提取#xff0c;仅供参考。 一.引入EasyExcel依赖…前言在这里分享自己第一次使用EasyExcel并且编写工具类且在接口中支持excel文件下载的一系列流程包含所有前后端JSJAVA完整代码可以根据自己需要自行提取仅供参考。 一.引入EasyExcel依赖 dependencygroupIdcom.alibaba/groupIdartifactIdeasyexcel/artifactIdversion2.2.7/version /dependency 二.自定义创建一个实体类如下这里使用了lombok package com.genew.nms.cloud.lm.vo;import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.fasterxml.jackson.annotation.JsonFormat; import com.genew.nms.cloud.lm.config.LocalDateStringConverter; import lombok.Data; import lombok.experimental.Accessors; import org.springframework.format.annotation.DateTimeFormat;import java.io.Serializable; import java.time.LocalDateTime;/*** author Salong* date 2023/5/29 15:38*/Data Accessors(chain true) public class UserModel implements Serializable {private static final long serialVersionUID 1L;ExcelIgnoreprivate String id;ExcelProperty(value User Name)ColumnWidth(20)private String userId;ExcelProperty(value User IP)ColumnWidth(20)private String userIp;ExcelProperty(value Log Time, converter LocalDateStringConverter.class)ColumnWidth(20)DateTimeFormat(pattern yyyy-MM-dd HH:mm:ss)JsonFormat(pattern yyyy-MM-dd HH:mm:ss)private LocalDateTime logTime;}其中各个注解功能如下 ExceIgnore标注的属性不会被EasyExcel读取识别 ExcelProperty(value 用户名) 被此标记的对象属性将会显示在‘用户名’的表头下面此注解还有一个index字段int类型从1开始可以不写默认按照从上往下的顺序给excel排列。 ColumnWidth(20) 表示此列的宽度可以根据内容的长短自定义宽度 需要注意日期类型的属性在ExcelProperty注解中需要额外添加coverter字段 三.编写EasyExcel工具类这里有两个class完整代码已贴出直接复制即可使用 1.ExcelUtils类 package com.genew.nms.cloud.lm.util;import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.support.ExcelTypeEnum; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.fastjson2.JSON; import lombok.extern.slf4j.Slf4j;import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; import java.net.URLEncoder; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map;/*** author Salong* date 2022/8/18 10:51*/Slf4j public class ExcelUtils {/*** 本地访问* param fileFullPath 本地完整路径* param sheets sheet模板*/public static void writeLocalExcel(String fileFullPath, SheetModel... sheets) {if (null sheets || sheets.length0){log.error(所需参数sheets缺失!);}ExcelWriter excelWriter EasyExcel.write(fileFullPath).build();ListSheetModel list Arrays.asList(sheets);list.forEach(e-{WriteSheet writeSheet EasyExcel.writerSheet(e.getIndex(), e.getSheetName()).head(e.getClazz()).build();excelWriter.write(e.getData(),writeSheet);});log.info(写入excel成功!);excelWriter.finish();}/**** param response http请求返回response对象* param fileName excel文件名* param excelTypeEnum excel后缀类型(输入ExcelTypeEnum.XLS或者ExcelTypeEnum.XLSX)* param sheets sheet表单模板* throws IOException*/public static void writeWebExcel(HttpServletResponse response, String fileName, ExcelTypeEnum excelTypeEnum, SheetModel... sheets) {if (null sheets || sheets.length0){log.error(所需参数sheets缺失!);}ListSheetModel list Arrays.asList(sheets);try {OutputStream outputStream getOutputStream(response, fileName,excelTypeEnum);ExcelWriter excelWriter EasyExcel.write(outputStream).build();list.forEach(e-{WriteSheet writeSheet EasyExcel.writerSheet(e.getIndex(), e.getSheetName()).head(e.getClazz()).build();excelWriter.write(e.getData(),writeSheet);});log.info(写入excel成功!);excelWriter.finish();} catch (IOException e) {log.error(excel导出出失败, e);// 重置responseresponse.reset();response.setContentType(application/json);response.setCharacterEncoding(utf-8);MapString, String map new HashMap();map.put(status, 500);map.put(message, 下载文件失败 e.getMessage());try {response.getWriter().println(JSON.toJSONString(map));} catch (IOException ex) {log.error(response写入信息失败!,ex);}}}/*** 导出时生成OutputStream*/private static OutputStream getOutputStream(HttpServletResponse response, String fileName,ExcelTypeEnum excelTypeEnum)throws IOException {response.setContentType(application/vnd.ms-excel);response.setCharacterEncoding(utf-8);// 这里URLEncoder.encode可以防止中文乱码String file URLEncoder.encode(fileName, UTF-8).replaceAll(\\, %20);response.setHeader(Content-disposition, attachment;filename*utf-8 file excelTypeEnum.getValue());return response.getOutputStream();} }2.SheetModel类 package com.genew.nms.cloud.lm.util;import lombok.Data; import lombok.experimental.Accessors;import java.io.Serializable; import java.util.List;/*** author Salong* date 2022/8/18 10:52*/Data Accessors(chain true) public class SheetModelT implements Serializable {/*** 表单排序(一个Excel的不同的sheet名称不能一样,会覆盖*/private int index;/*** sheet表单名称一个Excel的不同的sheet名称不能一样会覆盖*/private String sheetName;/*** 表单填充内容*/private ListT data;/*** 表头数据类型*/private ClassT clazz; }四.使用方法示例 其中下面演示的response为HttpServletResponse对象可以用于在网络中传输 本地生成的参考工具类ExcelUtils.writeLocalExcel方法这里不一一举例。 //1.模拟获取到的数据信息并且放在List中这里用UserModel来举例 ListUserModel usersnew ArrayList(); //2.新建SheetModel对象(工作表) SheetModelUserModel model new SheetModel(); //3.构建SheetModel对象基本信息(工作表) model.setData(users) .setIndex(0) .setSheetName(user log) .setClazz(UserModel.class);//其中model为此excel中的一个工作表若excel中有多个工作表可重复构建多个model对象 //但是index不能一样否则会覆盖内容 SheetModelUserModel model01 new SheetModel(); model01 .setData(users) .setIndex(1) .setSheetName(user1 log) .setClazz(UserModel.class);//4.将上面定义的所有工作表写入到excel(上面的名称是工作表名称这里的名称为excel名称) ExcelUtils.writeWebExcel(response, system Log, ExcelTypeEnum.XLS, model,model01); 五.前端接收文件JS //js中定义需要引入axios export function cg(config){let url/api/xxx;return axios.post(url,config,{responseType: blob}); }//vue中使用 cg(config).then((response){const blob new Blob([response.data], { type: application/zip });let url window.URL.createObjectURL(blob);const link document.createElement(a); // 创建a标签link.href url;link.download gc.zip; // 重命名文件link.click();URL.revokeObjectURL(url); // 释放内存}).catch((err){console.log(err);})
http://www.ihoyoo.com/news/131205.html

相关文章:

  • 一个专做窗帘的网站卢松松的网站
  • 商城网站开发周期3d网站建设
  • 网站建设职业规划教育wordpress模板下载
  • 网站开发制作公司简介做的网站怎么发布到网上
  • 杭州网站建设网络公司深圳网络科技公司有哪些
  • 网站建设服务亮点做推文网站
  • 汽车制造行业网站模板百度分析
  • 有没有招代理商的网站教育培训网站建设方案模板下载
  • 网站建设与功能模块建筑网站、
  • 视频网站的制作教程为什么很多公司做网站建设
  • 网站免费php模板wordpress设置视频宽度
  • 怎么建立网站网址怎样建小型网站
  • 做网站都用什么技术单位做员工招退工在什么网站
  • 专门做房产的网站媒介星软文平台
  • 代码网站怎么做的上海住房与建设部网站
  • 电子科技网站太原免费网站建站模板
  • 网站嵌入视频代码网站开发的书
  • 如何制作自己的网站并且插口代码wordpress利用工具
  • 重庆企业网站seo做网站需求报告
  • 网站建设与规划策划书虚拟资源下载主题wordpress
  • wordpress网站数据库备份成都广告牌制作厂家
  • 十大接单网站合肥 电子商务 网站建设
  • 中国建设银行网站招聘如何注册公司并获得营业执照
  • 聊城网站建设售后服务做网站必须要有数据库
  • 考试网站模版网站点击率查询
  • 网站建设 时间安排建设网站哪个公司好
  • qq外国注册网站深圳做网站的大公司
  • 增加网站流量网站明确内容
  • 建设局网站安徽手机维修培训班学校
  • 南京旭光建设监理网站首页电子商务网站的网站架构