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

pc端网站未来安徽海通建设集团网站

pc端网站未来,安徽海通建设集团网站,企业法律平台网站建设方案,手机可以做app的软件vue springboot利用easypoi实现简单导出 前言一、easypoi是什么#xff1f;二、使用步骤 1.传送门2.前端vue3.后端springboot 3.1编写实体类#xff08;我这里是dto,也一样#xff09;3.2控制层结尾 前言 今天玩了一下springboot利用easypoi实现excel的导出#xff0c;以前… vue springboot利用easypoi实现简单导出 前言一、easypoi是什么二、使用步骤 1.传送门2.前端vue3.后端springboot 3.1编写实体类我这里是dto,也一样3.2控制层结尾 前言 今天玩了一下springboot利用easypoi实现excel的导出以前没玩过导入导出只不过听说过看别人用过怎么说呢想玩就玩一下吧毕竟结合自己业务场景需要才会考虑是否使用。先简单介绍一下easypoi。 一、easypoi是什么 1.不太熟悉poi的 2.不想写太多重复太多的 3.只是简单的导入导出的 4.喜欢使用模板的 若poi都不知道的童鞋请自行百度。。。 Easypoi的目标不是替代poi,而是让一个不懂导入导出的快速使用poi完成Excel和word的各种操作,而不是看很多api才可以完成这样工作。 二、使用步骤 1.传送门 因为我也是第一次使用这里还是先将easypoi的文档放这儿吧 basedemo.md · 悟耘信息/easypoi - Gitee.com 2.后端springboot 首先引入easypoi所需依赖 !--easypoi导入导出--dependencygroupIdcn.afterturn/groupIdartifactIdeasypoi-base/artifactIdversion4.1.3/version/dependencydependencygroupIdcn.afterturn/groupIdartifactIdeasypoi-web/artifactIdversion4.1.3/version/dependencydependencygroupIdcn.afterturn/groupIdartifactIdeasypoi-annotation/artifactIdversion4.1.3/version/dependency或者使用这个: dependencygroupIdcn.afterturn/groupIdartifactIdeasypoi-spring-boot-starter/artifactIdversion4.0.0/version /dependency3.1编写实体类我这里是dto,也一样 package top.wangxingjun.separate.dto;import cn.afterturn.easypoi.excel.annotation.Excel; import top.wangxingjun.separate.dto.base.OutputConverter; import top.wangxingjun.separate.entity.AdminRole; import top.wangxingjun.separate.entity.User; import lombok.Data; import lombok.ToString;import java.util.List;/*** author wxj* Date 2020/8/10*/ Data ToString public class UserDTO implements OutputConverterUserDTO, User {Excel(name 编号)private int id;Excel(name 账号)private String username;Excel(name 真实姓名)private String name;Excel(name 手机号)private String phone;Excel(name 邮箱)private String email;Excel(name 状态,replace {启用_true,禁用_false})private boolean enabled;} 简单看一下这个 Excel 注解主要的值 关于图片路径 着重说明一下这个图片路径当 type 取值为 2 的时候表示导出为图片同时配合使用的是 imageType 参数该参数决定是从 file 读取还是去数据库读取默认为从 file 中读取记得很早之前有小伙伴图片是直接 base64 存数据库的不过现在是没有人干这种事了 3.2控制层 直接看代码 /*** 用户信息导出*/GetMapping(api/exportUser)public void exportUser(HttpServletResponse response) throws Exception {ListUserDTO list userService.list();ExcelUtil.exportExcel(list, null, sheet1, UserDTO.class, 用户信息, response);} 没错就这么几行代码当然了还要有个工具类是我封装好的网上也有很多的咯。下面看工具类 package top.wangxingjun.separate.util;import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.ExcelImportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.ImportParams; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import lombok.extern.log4j.Log4j2; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletResponse; import java.io.File; import java.net.URLEncoder; import java.util.List; import java.util.Map; import java.util.NoSuchElementException;/*** ProjectName: separate* Package: top.wangxingjun.separate.util* ClassName: ExcelUtil* Author: wxj* Description: Excel导入导出工具类* Date: 2020/8/25 10:07* Version: 1.0*/ Log4j2 public class ExcelUtil {/*** Map集合导出** param list 需要导出的数据* param fileName 导出的文件名* param response HttpServletResponse对象*/public static void exportExcel(ListMapString, Object list, String fileName, HttpServletResponse response) throws Exception{defaultExport(list, fileName, response);}/*** 复杂导出Excel包括文件名以及表名不创建表头** param list 需要导出的数据* param title 表格首行标题不需要就传null* param sheetName 工作表名称* param pojoClass 映射的实体类* param fileName 导出的文件名如果为null则默认文件名为当前时间戳* param response HttpServletResponse对象*/public static void exportExcel(List? list, String title, String sheetName, Class? pojoClass, String fileName,HttpServletResponse response) throws Exception{defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName));}/*** 复杂导出Excel包括文件名以及表名创建表头** param list 需要导出的数据* param title 表格首行标题不需要就传null* param sheetName 工作表名称* param pojoClass 映射的实体类* param fileName 导出的文件名* param isCreateHeader 是否创建表头* param response HttpServletResponse对象*/public static void exportExcel(List? list, String title, String sheetName, Class? pojoClass, String fileName,boolean isCreateHeader, HttpServletResponse response) throws Exception{ExportParams exportParams new ExportParams(title, sheetName);exportParams.setCreateHeadRows(isCreateHeader);defaultExport(list, pojoClass, fileName, response, exportParams);}/*** 默认导出方法** param list 需要导出的数据* param pojoClass 对应的实体类* param fileName 导出的文件名* param response HttpServletResponse对象* param exportParams 导出参数实体*/private static void defaultExport(List? list, Class? pojoClass, String fileName, HttpServletResponse response,ExportParams exportParams) throws Exception{Workbook workbook ExcelExportUtil.exportExcel(exportParams, pojoClass, list);downloadExcel(fileName, workbook, response);}/*** 默认导出方法** param list Map集合* param fileName 导出的文件名* param response HttpServletResponse对象*/private static void defaultExport(ListMapString, Object list, String fileName, HttpServletResponse response)throws Exception {Workbook workbook ExcelExportUtil.exportExcel(list, ExcelType.HSSF);if (null ! workbook) {downloadExcel(fileName, workbook, response);}}/*** Excel导出** param fileName Excel导出* param workbook Excel对象* param response HttpServletResponse对象*/public static void downloadExcel(String fileName, Workbook workbook, HttpServletResponse response) throws Exception{try {if (StringUtils.isEmpty(fileName)) {throw new RuntimeException(导出文件名不能为空);}String encodeFileName URLEncoder.encode(fileName, UTF-8);response.setHeader(content-Type, application/vnd.ms-excel; charsetutf-8);response.setHeader(Content-Disposition, attachment;filename encodeFileName);response.setHeader(FileName, encodeFileName);response.setHeader(Access-Control-Expose-Headers, FileName);workbook.write(response.getOutputStream());} catch (Exception e) {log.error(e.getMessage(), e);}}/*** 根据文件路径来导入Excel** param filePath 文件路径* param titleRows 表标题的行数* param headerRows 表头行数* param pojoClass 映射的实体类* return*/public static T ListT importExcel(String filePath, Integer titleRows, Integer headerRows, ClassT pojoClass) throws Exception{//判断文件是否存在if (StringUtils.isBlank(filePath)) {return null;}ImportParams params new ImportParams();params.setTitleRows(titleRows);params.setHeadRows(headerRows);ListT list null;try {list ExcelImportUtil.importExcel(new File(filePath), pojoClass, params);} catch (NoSuchElementException e) {log.error(模板不能为空, e);} catch (Exception e) {log.error(e.getMessage(), e);}return list;}/*** 根据接收的Excel文件来导入Excel,并封装成实体类** param file 上传的文件* param titleRows 表标题的行数* param headerRows 表头行数* param pojoClass 映射的实体类* return*/public static T ListT importExcel(MultipartFile file, Integer titleRows, Integer headerRows, ClassT pojoClass) throws Exception{if (file null) {return null;}ImportParams params new ImportParams();params.setTitleRows(titleRows);params.setHeadRows(headerRows);ListT list null;try {list ExcelImportUtil.importExcel(file.getInputStream(), pojoClass, params);} catch (NoSuchElementException e) {log.error(excel文件不能为空, e);} catch (Exception e) {log.error(e.getMessage(), e);}return list;}/*** 文件转List** param file* param pojoClass* param T* return*/public static T ListT fileToList(MultipartFile file, ClassT pojoClass) throws Exception{if (file.isEmpty()) {throw new RuntimeException(文件为空);}ListT list ExcelUtil.importExcel(file, 1, 1, pojoClass);if (CollectionUtils.isEmpty(list)) {throw new RuntimeException(未解析到表格数据);}return list;} }excel导出所需要的都准备好了下面来看一下我的效果 ​
http://www.hkea.cn/news/14565086/

相关文章:

  • 潍坊网络建站模板新郑网络推广公司
  • 济南做网站软件前端需要会wordpress
  • 网站推广专家十年乐云seo网页设计期末作业源码
  • 免费 网站建设域名注册过程
  • 湖南营销型网站建设 地址磐石网络专业的网站建设服务商
  • 懂做网站的人就是好广州做网站app
  • 好用的网站系统网站需要的技术
  • 建筑工程专业网站优化的关键词
  • 销售网站页面特点做英文网站的标准字体
  • 浦东网站推广青岛制作企业网站
  • 邢台网站建设 冀icp备上海广告公司赵菲
  • 合肥建筑网站静态网站做新闻系统
  • 一站式营销推广平台一台云服务器多少钱
  • 两学一做山西答题网站深圳企业网站制作招聘信息
  • 微网站定制多久网站模板 整站源码
  • 电子商务网站开发与设计项目管理物流公司网站建设模板
  • 建设游戏网站石家庄网站建设策划方案
  • 如何设计商务网站商丘旅游网站的建设
  • 贵州省交通建设集团网站网站建设网站制作有限
  • 江门网站建设联系电话会写网站怎么赚钱
  • 交互效果网站网络管理系统设计
  • 建设银行的网站网站记登录账号怎么做
  • 淘宝客cms建站教程网站后台批量上传图片
  • 石家庄seo网站优化公司网络贷款公司哪个好
  • 苏州网站建设培训湖北建设工程造价协会网站
  • 网站设计和网站建设c 网站开发项目
  • 郑州教育培训机构网站建设用vs2012做简单网站
  • 素马杭州网站设计介绍百度竞价推广投放
  • 网站怎么快速排名wordpress 链接 中文乱码
  • 网站开发背景及意义做网站应该选择怎样的公司