当前位置:首页 > 实用技巧 >

用java怎么写excel导入工具(excel导入导出java解决方案推荐)

来源:原点资讯(www.yd166.com)时间:2023-05-11 07:27:02作者:YD166手机阅读>>

java-excel-utils是JAVA操作 Excel 导入导出的工具类,目的是简化逻辑操作、可拓展 Excel 导入导出配置。

用java怎么写excel导入工具,excel导入导出java解决方案推荐(1)

功能:

  1. 导入Excel文件,支持配置时间、小数点类型(支持单/多sheet)
  2. 浏览器导出Excel文件、模板文件(支持单/多sheet)
  3. 指定路径生成Excel文件(支持单/多sheet)
  4. 样式自定义,行、列、某个单元格(支持单/多sheet)
  5. 固定表头(支持单/多sheet)
  6. 下拉列表值(支持单/多sheet)
  7. 合并单元格、列宽、标题(支持单/多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

栏目热文

java将word里的表格导入到数据库(java实现导入excel数据到数据库)

java将word里的表格导入到数据库(java实现导入excel数据到数据库)

一、导入相关的依赖包<dependency> <groupId>org.apache.p...

2023-05-11 07:21:11查看全文 >>

怎样正确用洗衣机(新手怎么使用洗衣机)

怎样正确用洗衣机(新手怎么使用洗衣机)

洗衣机可以说是家务劳动的最得力“帮手”之一,极大地减少了家庭清洁衣物和家纺带来的劳动量。经济日报-中国经济网提示,洗衣机...

2023-05-11 07:15:31查看全文 >>

洗衣机怎么使用步骤(洗衣机怎么操作步骤图)

洗衣机怎么使用步骤(洗衣机怎么操作步骤图)

对于洗衣机的使用来说,很多朋友应该都会觉得自己已经很熟悉了,毕竟每天都要用。但是有些地方,还是有不少的人经常的忽略掉,所...

2023-05-11 06:46:43查看全文 >>

停车时如何判断左右人和车距离(停车如何判断前后车距离口诀)

停车时如何判断左右人和车距离(停车如何判断前后车距离口诀)

无论是在侧方位停车时还是在倒库停车时,也无论是左侧还是右侧,我们都需要对相邻车辆进行车距判断,那在车内驾驶员位置,如何做...

2023-05-11 06:43:13查看全文 >>

停车怎样判断与两侧车的距离(停车时怎么判断右侧车距离)

停车怎样判断与两侧车的距离(停车时怎么判断右侧车距离)

对于司机来说,停车、入库都是小意思,但是对于很多新手司机,倒车入库则是很多刚从驾校出来的新手的一大死穴:新手们不明白,自...

2023-05-11 07:12:45查看全文 >>

java把excel表格数据导入到数据库(java实现导入excel数据到数据库)

java把excel表格数据导入到数据库(java实现导入excel数据到数据库)

工作中,我们如果在大公司上班,经常有程序员和非程序员之分,而且公司大了,每天都要产生大量数据,怎么储存数据呢?对于程序员...

2023-05-11 07:16:42查看全文 >>

java操作excel表导入数据库(java操作excel导入表)

java操作excel表导入数据库(java操作excel导入表)

如果项目经理给你一个Excel表格数据,让你把这些数据插入数据库,你会怎么操作?大部分想的就是通过Java代码拼接成S...

2023-05-11 06:47:07查看全文 >>

java将excel导入数据库(java操作excel直接导入数据库)

java将excel导入数据库(java操作excel直接导入数据库)

由于篇幅有限,csdn的上传在60M内,jar包加起来就超过了,这里只保存了关键的源代码,想要详细的源代码可以私信我。...

2023-05-11 07:21:45查看全文 >>

java将大量excel数据导入数据库(java操作excel直接导入数据库)

java将大量excel数据导入数据库(java操作excel直接导入数据库)

1、导入模板是用来给系统使用者在导入数据时使用的,有了导入模板就相当于有了一个导入的规范,确定需要导入哪些列来让使用者填...

2023-05-11 06:50:45查看全文 >>

java上传和导入excel(java读取上传的excel文件)

java上传和导入excel(java读取上传的excel文件)

一、需求说明通过接口上传一个姓名号码表,返回一个"姓名,号码"格式的的一个String数组。二、功能实现...

2023-05-11 07:03:20查看全文 >>

文档排行