MAVEN坐标如下:

便于复制:

<!-- excel导出工具 -->
<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version>
</dependency>

注意:第二个坐标是使用POI读取excel数据的时候分2003和2007的版本,不加这个坐标是没有XSSFWorkbook类的

xls使用HSSFWorkbook     xlsx使用XSSFWorkbook

前台:

因为我需要导出数据的时候检查内容,需要回调,所有不能直接提交表单

function  getExcel() {var formData = new FormData($("#excelForm")[0]);$.ajax({url: '/batch/importexcel',type: 'POST',data: formData,cache: false,dataType: "json", //预期服务器返回的数据类型//注意这里一定要设置contentType:false,不然会默认为传的是字符串,这样文件就传不过去了contentType: false,processData: false,success: function (data) {alert(data);},error: function (data) {alert(data.msg);}});
}

springboot后台接收以及逻辑如下:

if (file == null) {//代表没有文件return "0";
}
if (file.getOriginalFilename() != null && !"".equals(file.getOriginalFilename())) {String filename = file.getOriginalFilename();//excel2003if (filename.split("\\.")[1].equals("xls")) {try {//POI导入文件,存放到list集合HSSFWorkbook workbook = new HSSFWorkbook(new POIFSFileSystem(file.getInputStream()));//意思是有几个文件,一个excel可能有多个sheet,这里只读取第一个int sheets = workbook.getNumberOfSheets();//只读取第一个sheetHSSFSheet sheetAt = workbook.getSheetAt(0);//这个表示当前sheet有多少行数据,一行一行读取就行int rows = sheetAt.getPhysicalNumberOfRows();for (int i = 0; i < rows; i++) {Batch batch = new Batch();//某一行的数据,是一行一行的读取HSSFRow row = sheetAt.getRow(i);String value = row.getCell(1).getStringCellValue();System.out.println(value);}} catch (RuntimeException e) {}//excel2007} else if (filename.split("\\.")[1].equals("xlsx")) {//POI导入文件,存放到list集合try {XSSFWorkbook workbook = new XSSFWorkbook(file.getInputStream());//意思是有几个文件,一个excel可能有多个sheet,这里只读取第一个int sheets = workbook.getNumberOfSheets();//只读取第一个sheetXSSFSheet sheetAt = workbook.getSheetAt(0);//这个表示当前sheet有多少行数据,一行一行读取就行,但是会把没有数据的行读出来,需要加异常处理int rows = sheetAt.getPhysicalNumberOfRows();for (int i = 0; i < rows; i++) {if (i == 0) {continue;}//某一行的数据,是一行一行的读取XSSFRow row = sheetAt.getRow(i);String productid = "";String date = "";String batchStr = "";String number = "";String manufactname = "";String identifier = "";String mark = "";try {productid = row.getCell(0).getStringCellValue();} catch (RuntimeException e) {double values = row.getCell(0).getNumericCellValue();productid = values + "";}try {date = row.getCell(1).getStringCellValue();} catch (Exception e) {double dates = row.getCell(1).getNumericCellValue();date = dates + "";}try {batchStr = row.getCell(2).getStringCellValue();} catch (Exception e) {double batchStrs = row.getCell(2).getNumericCellValue();batchStr = batchStrs + "";}try {number = row.getCell(3).getStringCellValue();} catch (Exception e) {double numbers = row.getCell(3).getNumericCellValue();number = numbers + "";}try {manufactname = row.getCell(4).getStringCellValue();} catch (Exception e) {double manufactnames = row.getCell(4).getNumericCellValue();manufactname = manufactnames + "";}try {identifier = row.getCell(5).getStringCellValue();} catch (Exception e) {double identifiers = row.getCell(5).getNumericCellValue();identifier = identifiers + "";}try {mark = row.getCell(6).getStringCellValue();} catch (Exception e) {double marks = row.getCell(6).getNumericCellValue();mark = marks + "";}//productid  date   batchStr    number  manufactname    identifier  markSystem.out.println(productid + "---" + date + "---" + batchStr + "---" + number + "---" + manufactname + "---" + identifier + "---" + mark);}} catch (RuntimeException e) {return "2";}}
} else {return "1";
}return "2";

主要看逻辑就行,其他的代码可以忽略

控制台打印如下:

springboot使用POI读取excel数据相关推荐

  1. springboot整合poi读取数据库数据和图片动态导出excel

    springboot整合poi读取数据库数据和图片动态导出excel 第一次操作 话不多说就直接上代码 实现代码 需要的依赖 <dependency><groupId>org. ...

  2. Java使用Poi读取Excel数据(exor)

    读取Excel使用一个小工具exor exor是一个开源项目,封装了一些poi读取excel的操作,可以读取excel数据并格式化为二维结构 xlsx和xls格式都可以读取 exor的依赖:commo ...

  3. Java使用poi读取excel数据(excel可能很大,先转换为csv再读取)

      ------------配置------------   jdbc.properties中加入: excelUrl=/--xlsx文件目录路径/ (excelUrl + "xxxx.xl ...

  4. java 利用POI 读取Excel数据的真实有效行数

    前言 最近发现java导入excel数据时,我的excel数据明明只有4条数据,可是java程序却读取到了第6行.检查代码发现5.6行不小心设置了行高,导致poi的getLastRowNum()方法读 ...

  5. 使用poi读取excel数据

    为什么使用poi不用jxl, poi的功能更加的强大,效率更高,支持函数,支持字体.数字.日期操作(虽然我没用到,哈哈) pom <dependency><groupId>or ...

  6. poi excel mysql_java的poi技术读取Excel数据到MySQL

    这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中. 你也可以在 :java的poi技术读取和导入Excel了解到写入Excel的方法信息 使用JXL技术可以在 : ...

  7. java通过poi读取excel中的日期类型数据或自定义类型日期

    java通过poi读取excel中的日期类型数据或自定义类型日期 Java 读取Excel表格日期类型数据的时候,读出来的是这样的  12-十月-2019,而Excel中输入的是 2019/10/12 ...

  8. java导入excel数据到mysql_java的poi技术读取Excel数据到MySQL

    这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中. 你也可以在 : 项目结构: Excel中的测试数据: 数据库结构: 对应的SQL: 1 CREATE TABL ...

  9. java 读取Excel数据(POI)(一个sheet或者多个sheet)

    1.添加依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml< ...

最新文章

  1. tlb存的什么_什么是MMU,TLB
  2. 学维修电脑要多久_学蛋糕一般要学习多久、学费贵吗?
  3. python读取word文档
  4. 每周分享第 19 期(20190426)
  5. mysql优化模糊查询_MySQL的LIKE模糊查询优化
  6. Mysql:This version of MySQL doesn’t yet support ‘LIMIT IN/ALL/ANY/SOME 错误解决
  7. margin为负值的几种情况
  8. java json和对象互相装换
  9. JavaScript学习总结(2)——JavaScript数据类型判断
  10. Visual Studio 2010 Beta 2 公开下载地址
  11. 威联通NAS-QTS系统中一些功能的释义
  12. 章节十五、6-log4 2-用默认的配置
  13. oracle集群启动状态,oracle 11g集群软件无法启动解决步骤
  14. 如何判断数据库中是否已经存在某个临时表?
  15. Python 批处理文件(全)
  16. three.js + jquery灯光照耀js特效
  17. C++ 动态创建二维数组
  18. uniapp教室实验室会议室预约app源码
  19. 企业管理之道:中层管理者,到底该管理什么?
  20. php 检测数组内是否有空值,判断PHP数组是否为空的代码

热门文章

  1. 容器隔离技术_在隔离区捡拾钢琴的技术提示
  2. 贝利思科技:拼多多的计算模式有哪些
  3. 事件机制的html5自动刷新,梦幻模拟战魔剑的余波攻略-日常随机事件刷新机制 - Iefans...
  4. 支付宝无手续费批量返款技巧
  5. 桶排序c语言,桶排序(Bucket Sort)的数组实现
  6. Recover Rotated Sorted Array
  7. 广东人被冻哭?羽绒服热潮来袭 论国民品牌是如何成功破圈的呢?
  8. 关于安装loadrunner时因为.NET Framwork的问题解决
  9. 文件上传: FileItem类、ServletFileUpload 类、DiskFileItemFactory类
  10. mysql explain extended_MySQL EXPLAIN extended