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

hutool ExcelUtil 导出导入excel

引入依赖

  <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.15</version></dependency>

文件导入

public void savelist(String filepath,String keyname){ExcelReader reader = ExcelUtil.getReader(FileUtil.file(filepath), 0);List<Map<String, Object>> sheetRowsMap = reader.readAll();String host = "192.168.1.80";int port = 6379;Jedis jedis = new  Jedis(host, port);for (Map<String, Object> stringObjectMap : sheetRowsMap) {TemplateVo vo =  JwfsStdPopRealPopNewTemplateVo.builder().addressDetail(String.valueOf(stringObjectMap.get("户籍地址(校验后)"))).popName(String.valueOf(stringObjectMap.get("姓名"))).popPhone(String.valueOf(stringObjectMap.get("电话"))).build();log.info(vo);}}

文件导出

 public static void export(List<JwfsStdPopRealPopNewTemplateVo> data, String path, String fileName, JwfsStdPopRealPopNewTemplateVo excelData) throws IOException {log.info("开始导出");ExcelWriter writer = ExcelUtil.getWriter();List<Map> fieldAnnotation = getFieldAnnotation(excelData);for(Map<String,String> map:fieldAnnotation){for(String key:map.keySet()){String value = map.get(key);writer.addHeaderAlias(key,value);}}//第1列40px宽//writer.setColumnWidth(0, 40);//第2列15px 宽//writer.setColumnWidth(1, 15);//对齐方式,水平左对齐,垂直中间对齐writer.getStyleSet().setAlign(HorizontalAlignment.LEFT, VerticalAlignment.CENTER);//标题样式CellStyle headCellStyle = writer.getHeadCellStyle();//设置背景色headCellStyle.setFillForegroundColor(IndexedColors.WHITE1.getIndex());//必须设置 否则背景色不生效headCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);//创建标题字体Font headFont = writer.createFont();headFont.setFontName("宋体");//大小headFont.setFontHeightInPoints((short) 11);//加粗headFont.setBold(true);headCellStyle.setFont(headFont);writer.setColumnWidth(-1, 30);writer.setRowHeight(-1,20);//保存路径FileOutputStream output = new FileOutputStream(path+fileName+".xls");// 一次性写出内容writer.write(data);//自适应列宽int columnCount = writer.getColumnCount();for (int i = 0; i < columnCount; ++i) {double width = SheetUtil.getColumnWidth(writer.getSheet(), i, false);if (width != -1.0D) {width *= 256.0D;//此处可以适当调整,调整列空白处宽度width += 220D;writer.setColumnWidth(i, Math.toIntExact(Math.round(width / 256D)));}}writer.flush(output,true);// 关闭writer,释放内存writer.close();}JwfsStdPopRealPopNewTemplateVo jwfsStdPopRealPopNewTemplateVo = JwfsStdPopRealPopNewTemplateVo.builder().build();export(list,"C:\\Users\\Administrator\\Desktop\\1\\",filename,jwfsStdPopRealPopNewTemplateVo);

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 微服务节流阀:Eureka中服务限流策略的精妙实现
  • Knife4j的原理及应用详解(四)
  • 4.MkDocs样式
  • 『C + ⒈』‘\‘
  • [ABC275A] Find Takahashi 题解
  • 基于go 1.19的站点模板爬虫
  • 记录一次排查api接口不通的问题
  • NI SCXI-1001 模块处理器控制器
  • 【work】AI八股-神经网络相关
  • 骏网一卡通之类的游戏卡有什么用?
  • kettle中调用restful接口时的SSL信任证书问题
  • cesium 雷达扫描
  • go获取正在运行的函数并及时捕获panic
  • ARM/Linux嵌入式面经(十四):ARM体系架构基础知识
  • 人与机器的协同是强弱系统的互补行为
  • @angular/forms 源码解析之双向绑定
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Hibernate最全面试题
  • IP路由与转发
  • Java的Interrupt与线程中断
  • Java应用性能调优
  • LintCode 31. partitionArray 数组划分
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • PhantomJS 安装
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Vue组件定义
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 分享几个不错的工具
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 前端路由实现-history
  • 前端之Sass/Scss实战笔记
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 线性表及其算法(java实现)
  • 最近的计划
  • 【干货分享】dos命令大全
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • ​flutter 代码混淆
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • #、%和$符号在OGNL表达式中经常出现
  • #{} 和 ${}区别
  • #每天一道面试题# 什么是MySQL的回表查询
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (HAL库版)freeRTOS移植STMF103
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (windows2012共享文件夹和防火墙设置
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (五)Python 垃圾回收机制
  • (转)拼包函数及网络封包的异常处理(含代码)
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃