java 将Excel数据读取到ListMap
将Excel数据读取到ListMap
  /**
 * 将Excel数据读取到ListMap
 * @param file
 */
  public static List<Map<String, Object>> readExcelDataToListMap(MultipartFile file) {
      String edition_2003 = "^.+\\.(?i)(xls)$";		// Excel_2003版本
      String edition_2007 = "^.+\\.(?i)(xlsx)$";	// Excel_2007版本
      String fileName = file.getOriginalFilename();	// 获取文件名
      if (StringUtils.isNotBlank(fileName)) {
      	  try {
      	      // 根据Excel版本创建对象
      	      Workbook wb = null;
      	      if (fileName.matches(edition_2003)) {
      	          wb = new HSSFWorkbook(file.getInputStream());
      	      } else {
      		  if (fileName.matches(edition_2007)) {
      		      wb = new XSSFWorkbook(file.getInputStream());
      		  }
      	      }
      	      // 读取Excel里面的数据
      	      if (null != wb) {
      	         // 得到第一个shell
      	          Sheet sheet = wb.getSheetAt(0);
      	    	  // 得到Excel的行数
      	    	  int totalRows = sheet.getPhysicalNumberOfRows();
      	    	  // 得到Excel的列数(前提是有行数)
      	    	  int totalCells = 0;
      	    	  if (totalRows > 1 && sheet.getRow(0) != null) {
      	    	      totalCells = sheet.getRow(0).getPhysicalNumberOfCells();
      	    	  }
      	    	  List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();
      	    	  // 循环Excel行数
      	    	  for (int r = 1; r < totalRows; r++) {
      	    	      Row row = sheet.getRow(r);
    	    	      if (row == null) {
    	    	          continue;
    	    	      }
    	    	      // 循环Excel的列
    	    	      Map<String, Object> map = new HashMap<String, Object>();
    	    	      for (int c = 0; c < totalCells; c++) {
    	    	          Cell cell = row.getCell(c);
    	    	          if (null != cell) {
    	    	              int cellType = cell.getCellType();
    	    	              if (cellType == 0) {
    	    	                  DataFormatter dataFormatter = new DataFormatter();
    	    	                  dataFormatter.addFormat("###########", null);
    	    	                  String str = dataFormatter.formatCellValue(cell);
    	    	                  if (StringUtils.isNotBlank(str)) {
    	    	    	              map.put(c+"",str);
    		                  }
    	    	              }else{
    	    	                  String str = String.valueOf(cell);
    	                          if (StringUtils.isNotBlank(str)) {
    	        	              map.put(c+"",str);
    	    	                  }
    	    	              }
    	                  }
    	              }
    	              // 添加到list
    	              if (map.size() > 0) {
    	    	         listMap.add(map);
    	              }
      	          }
      	          return listMap;
               }
             } catch (Exception e) {
          	    e.printStackTrace();
             }
        }
        return null;
  }
												
											java 将Excel数据读取到ListMap的更多相关文章
- java实现Excel数据导出
		
java实现Excel数据导出: 目前,比较常用的实现Java导入.导出Excel的技术有两种Jakarta POI和Java Excel Jakarta POI 是一套用于访问微软格式文档的Java ...
 - Java实现Excel数据批量导入数据库
		
Java实现Excel数据批量导入数据库 概述: 这个小工具类是工作中的一个小插曲哦,因为提数的时候需要跨数据库导数... 有的是需要从oracle导入mysql ,有的是从mysql导入oracle ...
 - java实现EXCEL数据导入到数据库中的格式问题的解决
		
之前作为项目甲方,加之java接触不多,在java web开发方面都是打下手的份. 对于EXCEL数据导入到数据库这个问题一直老是出现格式原因而导入失败也是未免惆怅,开发团队也是只说回去检查一下格式. ...
 - Java 创建 Excel 数据透视表
		
Excel 数据透视表具有强大的数据处理功能,能够使表格中的数据更加直观化.使用Excel 数据透视表,能方便用户快速的排序. 筛选各种数据,同时也能满足用户对不同数据汇总的需求.本文将介绍如何在Ja ...
 - python + Excel数据读取(更新)
		
data.xlsx 数据如下: import xlrd#1.读取Excel数据# table = xlrd.open_workbook("data.xlsx","r&qu ...
 - java 对excel操作 读取、写入、修改数据;导出数据库数据到excel
		
============前提加入jar包jxl.jar========================= // 从数据库导出数据到excel public List<Xskh> outPu ...
 - 自己封装的Java excel数据读取方法
		
package org.webdriver.autotest.data; import jxl.Workbook; import jxl.Sheet; import jxl.Cell; import ...
 - 关于java对Excel的读取
		
/*注意:读取的Excel文件 请另存为2003版本的Excel,否则可能会报错别忘记导入第三方的jar包*/package com.zzp.ExcelParse;import jxl.Cell;im ...
 - 数据驱动ddt+excel数据读取
		
我们可以将测试数据用excel存储,再用ddt去传入,不过我们需要安装对应的库,因为python是无法操作excel的 1.安装第三方库xlrd 2.创建一个excel表格,将需要测试的数据保存 3. ...
 - Java 设置Excel数据验证
		
数据验证是Excel 2013版本中,数据功能组下面的一个功能,在Excel2013之前的版本,包含Excel2010 Excel2007称为数据有效性.通过在excel表格中设置数据验证可有效规范数 ...
 
随机推荐
- JupyterNotebook开发介绍
			
简单介绍 核心目录在notebook下面,主页面在tempaltes目录下的notebook.html文件,没有用到传统的前端开发技术,还是jquery之类的前端,而且用了非常多的类库,开发环境的搭建 ...
 - C# 抽象类小谈
			
最近在做一个测试系统,就是读取功率计上的数据,在上位机软件上显示出来. 电脑界面不是我们这次的主讲就略过,我们这里主要讲一个类的实现. 最开始领导给了一个 远方的三相功率计 给我让我写上位机,很简单, ...
 - HTML 到 CSS,乃至进阶的 XML、SQL、JS、PHP 和 ASP.NET
			
https://www.runoob.com/tags/html-reference.html 在线版,从基础的 HTML 到 CSS,乃至进阶的 XML.SQL.JS.PHP 和 ASP.NET. ...
 - 【翻译】了解Flink-概览 -- Learn Flink-Overview
			
了解Flink: 上手手册 目录 手册目标和范围 流处理 并行数据流 及时的流处理 有状态流处理 通过状态快照进行容错 翻译来源 Learn Flink:Overview , Learn Flink: ...
 - SpringBoot2.2.2+SpringCloud-Hoxton.SR1整合eureka/gateway
			
1.最近在学习SpringCloud分布式项目的知识,所以打算把自己学习到的知识也记录下来,为什么选择学习SpringCloud呢?因为分布式框架还有dubbo,如下图应该可以成为我为什么想学习Spr ...
 - 6.配置git-码云仓库
			
使用git需要使用码云或者github,github存在访问慢的情况,所以我使用码云(gitee). git客户端 下载安装 到git官网 https://git-scm.com/ 下载git客户端 ...
 - 整合jUnit4和jUnit5
			
整合jUnit4 1.引入依赖 <dependency> <groupId>org.springframework</groupId> <artifactId ...
 - Chrome 中设置默认搜索引擎为 google.com
			
https://google.com/search?q=%s&ref=opensearch&safe=off 那么就可以使搜索结果默认在新标签页打开,同时关闭了搜索结果的安全过滤. ...
 - kafka常用命令(zookeeper与bootstrap-server)
			
在 0.9.0.0 之后的 Kafka,出现了几个新变动,一个是在 Server 端增加了 GroupCoordinator 这个角色,另一个较大的变动是将 topic 的 offset 信息由之前存 ...
 - HCIA-ICT实战基础08-访问控制列表ACL原理与配置
			
HCIA-ICT实战基础-访问控制列表ACL原理与配置 目录 ACL技术概述 ACL的基本概念及其工作原理 ACL的基础配置及应用 ACL技术概述 技术背景: 需要一个工具实现流量过滤 ACL是由一系 ...