poi操作Excel 主要通过HSSF,XSSF两种方式。
HSSF只能解析.xls格式的excel文件,XSSF支持.xls与.xlsx两种格式。

功能:
传递一个Excel文件,拿到里面所有的数据,返回一个集合。
Excel中的数据是什么类型,就返回什么类型的数据。

文件:

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.10</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.0.0</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.0.0</version>
</dependency>
@ApiOperation("导出xlsx数据")
@PostMapping(value = "/import/xlsx",consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@ResponseBody
public JsonResult readFileXlsx(@RequestPart(value = "fileXlsx") MultipartFile fileXlsx) {List<List<Object>> excel = null;try {excel = excel(fileXlsx);return JsonResult.success("数据导出成功", excel);} catch (Exception e) {e.printStackTrace();}return JsonResult.error("获取数据失败");
}// 获取Excel表格的数据,返回一个集合
public static List<List<Object>> excel(MultipartFile fileXlsx) throws Exception {// 读取整个ExcelXSSFWorkbook sheets = new XSSFWorkbook(fileXlsx.getInputStream());// 获取第一个表单SheetXSSFSheet sheetAt = sheets.getSheetAt(0);List<List<Object>> listExcel = new ArrayList<>();// 循环获取每一行数据for (int i = 0; i < sheetAt.getPhysicalNumberOfRows(); i++) {XSSFRow row = sheetAt.getRow(i);// 读取每一格内容List<Object> list = new ArrayList<>();for (int index = 0; index < row.getPhysicalNumberOfCells(); index++) {//获取cellXSSFCell cell = row.getCell(index);//获取 cell的类型CellType cellType = cell.getCellType();// 如果是字符串类型,以字符串的形式获取到cellif (CellType.STRING.equals(cellType)){list.add(cell.getStringCellValue());}// 如果是数字类型,以数字的形式获取到cellif (CellType.NUMERIC.equals(cellType)){list.add(cell.getNumericCellValue());}}listExcel.add(list);}return listExcel;
}


说下我之前导出的方式

@ApiOperation("导出xlsx数据2")
@PostMapping(value = "/import2/xlsx2",consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@ResponseBody
public JsonResult readFileXlsx2(@RequestPart(value = "fileXlsx") MultipartFile fileXlsx) {ExcelReader reader = null;List<List<Object>> read = null;try {reader = ExcelUtil.getReader(fileXlsx.getInputStream());read = reader.read(); //可以加参数,表示从哪行开始读return JsonResult.success("读取成功:", read);} catch (IOException e) {e.printStackTrace();}return JsonResult.error("获取数据失败!");}


这种方式有个不好的地方:第一行数据导出来都是字符串类型的。

我猜是这个工具把第一行当成 表头了,而我传入的文件没有表头,里面都是数据,而我的需求是表里面是数字导出来就要是数字。

所以这种方式不满足我现在的需求,如果有表头就可以这样写。

Java用POI导出Excel表格中的数据相关推荐

  1. poiexcel 读取引用列_java用poi读取Excel表格中的数据

    Java读写Excel的包是Apache POI(项目地址:http://poi.apache.org/),因此需要先获取POI的jar包,本实验使用的是POI 3.9稳定版. Apache POI ...

  2. excel导出java不完整_有关Java POI导出excel表格中,单元格合并之后显示不全的解决方法。...

    我在table变换excel之后发现合并的单元格不能显示全部边框,在网上找了半天解决方案,终于解决了.具体解决代码如下; /** * 设置合并单元格的边框样式 * * @param sheet 当前表 ...

  3. python读取excel表格-python读取excel表格中的数据

    使用python语言实现Excel 表格中的数据读取,需要用到xlrd.py模块,实现程序如下: import xlrd #导入xlrd模块 class ExcelData(): def __init ...

  4. c 语言如何处理表格文件中的数据库,C#程序从Excel表格中读取数据并进行处理

    今天做了一个Excel表格数据处理的事情,因为数据量表较大(接近7000条)所以处理起来有点麻烦,于是写了一个程序, 先将程序记下以便将来查找. using System; using System. ...

  5. java中poi导出Excel表格(前台流文件接收)

    java中poi导出Excel表格,前端以流的方式接收,而非直接生成文件再下载,解决多台服务器部署后,路径地址不统一导致的下载问题. 生成Excel示例图: 2.代码说明 ① 在上次的基础上增加了底部 ...

  6. Java web项目利用POI导出EXCEL表格

    SSH2 POI导出EXCEL表格 1.首先导入poi的jar包 HSSFWorkbook :工作簿,代表一个excel的整个文档 HSSFSheet:工作表 HSSFRow :行 HSSFCell: ...

  7. java使用模板导出Excel表格

    java使用模板导出Excel表格 文章目录 java使用模板导出Excel表格 模板示例 一.引入依赖 二.使用步骤 1.添加工具类 2.导出Excel 模板示例 一.引入依赖 <depend ...

  8. Java操作poi导出Excel自定义字体颜色

    Java操作poi导出Excel自定义字体颜色 功能介绍 POI操作Excel 第一步创建一个导出的工具类 整体定义表格字体样式 自定义表格字体样式 总结 功能介绍 Apache POI 是用Java ...

  9. java搜索excel表格里的数据_Java读取Excel表格中的数据

    前言 本文主要讲述如何在Java中读取Excel表中的数据并在控制台输出,实现工具为Eclipse 提示:以下是本篇文章正文内容,下面案例可供参考 一.添加jar包文件 描述:在Java中导入导出Ex ...

  10. POI:从Excel文件中读取数据,向Excel文件中写入数据,将Excel表格中的数据插入数据库,将数据库中的数据添加到Excel表

    POI 简介: POI是Apache软件基金会用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能. ...

最新文章

  1. Rocksdb 获取当前db内部的有效key个数 (估值)
  2. 工程师必读 微软如何部署Exchange2010
  3. ubuntu14.04 install build-essential 出现错误 unable to loate package build-essential
  4. cobertura-maven-plugin
  5. python人工智能基础课免费_【领卡免费学】Python基础课(完整大课)
  6. picture of web
  7. 有两个地方,用到了javabean对象和属性字符串值之间的转换
  8. 用于混合Spock 1.x和JUnit 5测试的Maven项目设置
  9. 搭建自动安装的linux,RedHat7搭建无人值守自动安装Linux操作系统(PXE+Kickstart)
  10. Oracle杀事务数据库崩溃,关于pl/sql dev窗口崩溃导致锁表
  11. C++测试题练习题1
  12. 【汇编优化】之内联汇编
  13. App在后台运行时如何保存数据到sqlite数据库
  14. js打印到控制台_前端JS,8个问题测试你真的懂吗(高频面试题,附答案)
  15. 【线性代数及其应用】04 -线性变换
  16. jvm 调优 2020.09.07
  17. 【电子科技大学-微电子技术导论】学习笔记
  18. Struts2,Hibernate,Spring框架学习总结
  19. CodeForces - 1169D : Neko Performs Cat Furrier Transform(思维)
  20. 神经网络训练样本太少,神经网络常用训练方法

热门文章

  1. macOS 锐捷校园网解决方案
  2. 信捷XC系列PLC-编程
  3. 计算机组成原理 王道考研2021 第一章:计算机组成原理概述 -- 本章小结、常见问题和易混淆知识点
  4. FineReport10.0功能说明
  5. MATLAB中LINGO软件及数学规划问题应用
  6. lingo17.0软件工具
  7. 数据结构教材答案(C语言版 严蔚敏)第一章 绪论
  8. 南阳理工ACM111
  9. AHP层次分析法(附matlab程序)
  10. 【UE】UE4下载安装及测试demo