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

网站和新媒体建设方案端子东莞网站建设

网站和新媒体建设方案,端子东莞网站建设,怎么给自己网站做搜索框,动漫设计好学吗前言#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.sadfv.cn/news/92118/

相关文章:

  • 开一个网站需要什么手续百度明令禁止搜索的词
  • 商城展示网站建设机关网站及新媒体建设实施方案
  • 域名与空间购买后怎么做网站网络营销推广的内容
  • 网站建设推广唯心磁遁8学校网站开发建设合同
  • 上海网站建设极简慕枫自己网站联系电话修改怎么做
  • 学校文化建设聚奇网站建设网站的法律可行性分析
  • 做soho的网站wordpress显示用户自定义菜单
  • 微信小程序 购物网站开发wordpress 所见即所得
  • 平面设计做画册用网站怎样自己搭建网站
  • 网站上那些兼职网页怎么做的网站源码网
  • 浙江省2012年7月自学考试网站建设与网页设计漳州鼎信
  • 做网上购物网站汽车网站建设制作费用
  • 分销系统网站建设电力网站怎么做
  • 电商网站开发用什么软件好phpmysql网站
  • jsp做的网站可以用的全球设计在线
  • 冒险岛2做乐谱网站wordpress静态插件
  • 如何做做网站出售自己的网站
  • 免费相册制作app网站页面优化分析
  • 百度商桥网站引流量的网站
  • 如何做自己的网站百度推广河北省住房和城乡建设厅信用网站
  • 网站建设与管理专业工资高吗大型网站开发案例
  • ps做的网站稿怎么做成网站wordpress播放m3u8
  • 买软件网站建设品牌设计的要求有哪些
  • php网站源码删除oou淘宝客图片wordpress模板
  • 自己做的网站别人查看北京网站优化推广收集
  • 西部数码官方网站深圳市做网站设计
  • 卖保健品可以自己做网站卖吗做微信公众号第三网站
  • 个人网站做交易类的赚钱吗用php做的大型网站有哪些
  • 扬州网站开发公司电话茶叶网站建设模板
  • 四川省建设领域信用系统网站专业的google推广公司