poi 获取解析 excel 获取表头信息以及内容
1.导入依赖
<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.15</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.15</version>
</dependency>
2.获取数据
2.1.获取信息工具类
import com.xxl.job.core.util.DateUtil;import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*;import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;/*** @author abup* @date 2021/7/9 11:06*/
public class ExcelUtils {/*** 获取 Excel 文件表头信息** @param fileUrl* @return* @throws Exception*/public Set<String> getExcelHeaders(String fileUrl) throws Exception {File file = new File(fileUrl);InputStream is = new FileInputStream(file);Workbook workbook = new XSSFWorkbook(is);Sheet sheet = workbook.getSheetAt(0);System.out.println(sheet.getLastRowNum());//获取 excel 第一行数据(表头)Row row = sheet.getRow(0);//存放表头信息Set<String> set = new HashSet<>();//算下有多少列int colCount = sheet.getRow(0).getLastCellNum();System.out.println(colCount);for (int j = 0; j < colCount; j++) {Cell cell = row.getCell(j);String cellValue = cell.getStringCellValue().trim();set.add(cellValue);}return set;}/*** 获取 Excel 文件信息(除去表头)** @param fileUrl* @return* @throws Exception*/public List<List<String>> getExcelData(String fileUrl) throws Exception {File file = new File(fileUrl);InputStream is = new FileInputStream(file);Workbook workbook = new XSSFWorkbook(is);Sheet sheet = workbook.getSheetAt(0);//获取 Excel 中 sheet 的行数int rowNum = sheet.getLastRowNum();List<List<String>> resList = new ArrayList<>();//负责标记检测到空行时,跳过boolean flag = false;for (int i = 1; i <= rowNum; i++) {//默认认为此行为空行flag = true;Row row = sheet.getRow(i);//过滤空行if (row == null) {continue;}//创建列表,负责装纳一行数据List<String> list = new ArrayList<>();//获取列数int colCount = sheet.getRow(i).getLastCellNum();for (int j = 0; j < colCount; j++) {//获得制定空格Cell cell = row.getCell(j);String cellValue = "";//如果存在空格内有内容,就将标志位设置为 false,表示这一行不是空行if(!(cell == null)){cellValue = getStringCellValue(cell);if(!"".equals(cellValue)){flag = false;}}list.add(cellValue);}if(!flag){resList.add(list);}else{continue;}}return resList;}/*** 获取单元格数据内容为字符串类型的数据* @param cell Excel单元格* @return String 单元格数据内容*/public static String getStringCellValue(Cell cell) {String strCell = "";if (cell == null) {return "";}switch (cell.getCellType()) {case Cell.CELL_TYPE_STRING:strCell = cell.getStringCellValue().trim();break;case Cell.CELL_TYPE_NUMERIC:strCell = String.valueOf(cell.getNumericCellValue()).trim();break;case Cell.CELL_TYPE_BOOLEAN:strCell = String.valueOf(cell.getBooleanCellValue()).trim();break;case Cell.CELL_TYPE_BLANK:strCell = "";break;default:strCell = "";break;}if (strCell.equals("") || strCell == null) {return "";}return strCell;}
}
poi 获取解析 excel 获取表头信息以及内容相关推荐
- Java解析Excel 获取文本和图片信息
1.引入jar package org.apache.poi.hssf.usermodel; package org.apache.poi.ooxml; package org.apache.poi. ...
- 解析Excel获取单元格数据
今天自己写了一遍解析Excel的方法,虽然也是根据网上一些例子来写的,但是一边写一边在网上查找这些类.方法的含义及左右,感觉还是有所收获的.记录一下以后方便使用. private static fin ...
- java 获取解析excel中的图片
以xlsx2007的excel为例 //获取整个文档 XSSFWorkbook wb; // 页 XSSFSheet sheet;//表 // 行 XSSFRow row;//行 // 打开文件 tr ...
- java 解析excel获取单元格内容封装方法(兼容2003和2007)
支持xls2003及xlsx2007导入excel //导入excel接口 @RequestMapping(params = "importDecMainCode", method ...
- Poi导入Excel校验表头
我们在日常的开发过程中,poi导入数据要根据注解的列名和顺序进行识别,那么首先要校验模版的正确与否,即表头是否正确,然后才能开始数据和业务层面的校验,最近也是被这个东西烦的不行,解决后记录一下,一个是 ...
- 使用poi解析Excel
使用poi来解析Excel的xls和xlsx. 解析xls: Java代码 package xls; import java.io.FileInputStream; import java.io. ...
- div中内容靠右_python读取excel的公司名称信息,并爬虫获取公司的经营范围信息,回填到excel中...
大家总说,python今天学明天忘,没有实际操作,想要知道哪里有练手的机会.其实你要善于发现问题,捕捉问题.不管是你看到文章中的一些案例,还是微信群友问的一个问题.你都需要仔细思考,如果是你做你应该怎 ...
- python读取excel的公司名称信息,并爬虫获取公司的经营范围信息,回填到excel中
本文作者:是老王吖 原文链接:https://blog.csdn.net/jdkss/article/details/106077755?utm_source=app 1.项目需求 项目需求:这个问题 ...
- 获取extjs 选择后的表头_批量写入审计底稿的表头信息设定页面
做审计底稿的时候,需要把这个表粘贴很多遍,太麻烦了,所以我想利用vba批量完成这个操作.我是从批量打印里获得的灵感.首先给大家看一下 张翰博www.zhihu.com 写的批量打印的内容 1Sub ...
最新文章
- TCP的三次握手、四次挥手,含泪整理面经
- 转 容器生态系统 (续) - 每天5分钟玩转容器技术(3)
- 09_Android中ContentProvider和Sqllite混合操作,一个项目调用另外一个项目的ContentProvider
- 操作系统的起源|开源运动的兴起
- 吴恩达《机器学习》学习笔记四——单变量线性回归(梯度下降法)代码
- ElasticSearch D3
- Android 系统 (130)---ODM 开发用户常见需求文档(四)
- 正则表达式 转义字符
- OpenCv图像像素操作
- 微信小程序商城后台服务器,首先【基础配置】:完成小程序关联商城后台及配置微信支付...
- 彩色图像和灰色图像的区别
- 通过Frp内网穿透和Nginx反向代理实现不带端口号访问家里内网服务器网站
- 作为一个程序员对特修斯之船的理解
- 嵌入式系统python开发_嵌组词_嵌的拼音含义_组词造句解释_嵌字的组词
- MySQL中联合索引问题,
- 【转】用IDCNN和CRF做端到端的中文实体识别
- Linux查看服务器的cpu和内存的硬件信息
- AD账号属性的 PwdLastSet 和 PasswordLastSet 有什么区别?
- maven自定义archetype
- iOS证书申请打包上传App Store审核完整流程(7个步骤)