网站首页 > java教程 正文
java-excel-utils是JAVA操作 Excel 导入导出的工具类,目的是简化逻辑操作、可拓展 Excel 导入导出配置。
功能:
- 导入Excel文件,支持配置时间、小数点类型(支持单/多sheet)
- 浏览器导出Excel文件、模板文件(支持单/多sheet)
- 指定路径生成Excel文件(支持单/多sheet)
- 样式自定义,行、列、某个单元格(支持单/多sheet)
- 固定表头(支持单/多sheet)
- 下拉列表值(支持单/多sheet)
- 合并单元格、列宽、标题(支持单/多sheet)
教程文档:https://github.com/andyczy/czy-nexus-commons-utils/blob/master/README-Andyczy.md
一、导出配置。
设置列宽举例:
HashMap mapColumnWidth = new HashMap<>(); HashMap mapColumn = new HashMap<>(); //自定义列宽 mapColumn.put(0, 3); //第一列、宽度为3 mapColumn.put(1, 20); //有人会问宽度3是多宽?两个中文刚刚好,设置序号的大小 mapColumn.put(2, 15); //样式多调就好了,没有什么事就一下次弄好的,而且是美观上。 mapColumnWidth.put(1, mapColumn); //第一个单元格列宽
设置表头举例:
HashMap setPaneMap = new HashMap(); setPaneMap.put(1, 3); //第一个表格、第三行开始固定表头
设置数据举例:(假设数据)
List> dataLists = new ArrayList<>(); //多表格数据
导出表格sheet名称:
String[] sheetNameList = new String[]{"今日交易记录","今日交易明细"}; //两个表格、可多个
方式一:导出使用函数 ExcelUtils.exportForExcelsOptimize() 和 LocalExcelUtils.exportForExcelsOptimize()
//【推荐使用该方式】【建议大数据量下不要过多设置样式】 ExcelUtils excelUtils = ExcelUtils.initialization(); // 必填项--导出数据(参数请看下面的格式) excelUtils.setDataLists(dataLists); // 必填项--sheet名称(如果是多表格导出、sheetName也要是多个值!) excelUtils.setSheetName(sheetNameList); // 文件名称(可为空,默认是:sheet 第一个名称) excelUtils.setFileName(excelName); // web项目response响应输出流:必须填 【ExcelUtils 对象】 excelUtils.setResponse(response); // 输出本地【LocalExcelUtils 对象】 // excelUtils.setFilePath("F://test.xlsx"); // 每个表格的大标题(可为空) excelUtils.setLabelName(labelName); // 自定义:固定表头(可为空) excelUtils.setPaneMap(setPaneMap); // 自定义:单元格合并(可为空) excelUtils.setRegionMap(regionMap); // 自定义:对每个单元格自定义列宽(可为空) excelUtils.setMapColumnWidth(mapColumnWidth); // 自定义:某一行样式(可为空) excelUtils.setRowStyles(stylesRow); // 自定义:某一列样式(可为空) excelUtils.setColumnStyles(columnStyles); // 自定义:每一个单元格样式(可为空) excelUtils.setStyles(styles); // 自定义:对每个单元格自定义下拉列表(可为空) excelUtils.setDropDownMap(dropDownMap); // 自定义:忽略边框(可为空:默认是有边框) excelUtils.setNotBorderMap(notBorderMap); // 执行导出 excelUtils.exportForExcelsOptimize();
方式三:导出函数 ExcelUtils.exportForExcelsNoStyle() 和 LocalExcelUtils.exportForExcelsNoStyle()
无样式(行、列、单元格样式)推荐使用这个函数、样式设置过多会影响速度
导入使用函数: ExcelUtils.importForExcelData(......) 和 LocalExcelUtils.importForExcelData(......)
* 获取多单元数据 * 自定义:多单元从第几行开始获取数据【看本文最底下参数说明】 * 自定义:多单元根据那些列为空来忽略行数据【看本文最底下参数说明】
ExcelUtils 对象与 LocalExcelUtils 区别。
ExcelUtils: web响应有 response LocalExcelUtils:本地输出没 response
Test 测试【新增本地测试】
方式四:导出函数 ExcelUtils.exportForExcel(......) 过期注解
* 可提供模板下载 * 自定义下拉列表:对每个单元格自定义下拉列表 * 自定义列宽:对每个单元格自定义列宽 * 自定义样式:对每个单元格自定义样式 * 自定义样式:单元格自定义某一列或者某一行样式 * 自定义单元格合并:对每个单元格合并 * 自定义:每个表格的大标题 * 自定义:对每个单元格固定表头
二、导入配置。
有的人会问了,为什么这个导入没有转换成对象呢?我是觉得不好用,因为导入导出都是公用的,而且都是多表格,也没必要转换也有空拿到值。
9、导入配置:(第几行开始获取数据) 参数 indexMap
参数说明:多单元从第几行开始获取数据,默认从第二行开始获取(可为空) HashMap hashMapIndex = new HashMap(); hashMapIndex.put(1,3); // 第一个表格从第三行开始获取
10、导入配置:(列为空来忽略行数据) 参数 continueRowMap
参数说明:多单元根据那些列为空来忽略行数据(可为空) HashMap mapContinueRow = new HashMap(); mapContinueRow.put(1,new Integer[]{1, 3}); // 第一个表格第1、3列为空就忽略这行数据
11、导入时间格式(默认:yyyy-MM-dd)、导入数字保留的小数点(默认:#.###### 六位)
ExcelUtils excelUtils = ExcelUtils.initialization(); excelUtils.setNumeralFormat("#.####"); // (可为空)期望保留小数的位数(#.####)这样保留四位。 // (可为空) (poi 只接受无中文的日期格式、如果你想转换别的格式,这个参数要和导入表中日期格式类似,如表格中为:2019年02月14日 12时12分)。 excelUtils.setDateFormatStr("yyyy年MM月dd日 HH时mm分"); excelUtils.setExpectDateFormatStr("yyyy-MM-dd HH-mm"); // (可为空、默认的值是:dateFormatStr 参数值) 期望转换后的日期格式。 // 执行导入函数 ExcelUtils.importForExcelData()
导入获取数据:(支持多表格数据)
for(........){ // 伪代码 String accountNo = hashMapList.get(j).get("0"); // 获取到Excel表格中第一列数据 // 多表格数据、想怎么处理怎么处理,这就是不想转成对象的原因 }
POM Maven 引入依赖:(推荐使用最新版本)
com.github.andyczy
java-excel-utils
4.0
猜你喜欢
- 2024-09-21 如何把excel表格处理成json数据(jason转excel)
- 2024-09-21 一个读Excel数据的小例子,提供给爱学习的Java后端开发
- 2024-09-21 快速将Excel、CSV等格式文件数据转换到java对象
- 2024-09-21 GitHub Star 8800+ 的阿里开源的 Java 解析 Excel 工具
- 2024-09-21 还在重复劳动?不如用Python自动生成Excel以邮件发送
- 2024-09-21 Java8如何让Excel的读写变得更加简单高效
- 2024-09-21 java打印Excel表格(java输出excel表格)
- 2024-09-21 整理关于java写入内容到excel的例子供大家参考
- 2024-09-21 JavaAPI开发(3)POI——如何将List转换为excel文件
- 2024-09-21 【Java程序】读取指定路径下文件夹中的文件名,生成Excel表格!
你 发表评论:
欢迎- 最近发表
-
- class版本不兼容错误原因分析(class更新)
- 甲骨文Oracle公司为Java的最新LTS版本做出改进
- 「版本发布」Minecraft Java开发版 1.19.4-pre1 发布
- java svn版本管理工具(svn软件版本管理)
- 我的世界1.8.10钻石在第几层(我的世界1.7.2钻石在哪层)
- Java开发高手必备:在电脑上轻松切换多个JDK版本
- 2022 年 Java 开发报告:Java 8 八年不到,开发者都在用什么?
- 开发java项目,选择哪个版本的JDK比较合适?
- Java版本选型终极指南:8 vs 17 vs 21特性对决!大龄程序员踩坑总结
- POI Excel导入(poi excel导入附件)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)