使用POI读取Excel表格中数据
使用POI读取Excel表格中数据
已经在 使用POI读取Excel表格中数据2优化。(https://blog.csdn.net/qq_36570464/article/details/107053355)
https://blog.csdn.net/qq_36570464/article/details/107053355
背景
自己最近在研究自动换测试,在进行参数化时候,会对把用例写在Excel表格中,然后通过Java来取表格中数据,进而进行参数化。
问题
那么,我们的表格可能回事这么一个情况:
表格中的单元格里出现没有输入的情况(图片中红色部分),如何通过POI进行读取,或者如何处理?预期结果不用考虑。
代码
只贴了获取表格中数据代码,其他不是本文内容。
@DataProviderpublic Object[][] getParamExcel() throws IOException {File file = new File("/param.xlsx");XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(file));//获得表格中的第0个SheetXSSFSheet sheet = workbook.getSheetAt(0);//得到有多少行int numberRows = sheet.getPhysicalNumberOfRows();//获得第一行有多少列int numberCells=sheet.getRow(0).getPhysicalNumberOfCells();//获得第一行第一列所在的位置int numberFirst = sheet.getRow(0).getFirstCellNum();//创建一个Object二维数组,用来作为参数返回。//因为第一行是说明,则跳过第一行,所以行数减一Object[][] data = new Object[numberRows - 1][];//创建一个保存列的对象XSSFRow row = null;// 因为第一行是说明,则跳过第一行,所以行数减一//sheet.getFirstRowNum() 获得第一行开始的位子,可能不从第一行开始(i=0)//numberRows - 1 表示除去第一行说明,实际数据有多少行for (int i = sheet.getFirstRowNum(); i < numberRows - 1; i++) {//得到第i+1行,即第二行的实际数据row = sheet.getRow(i + 1);// 创建一个字符数组,用来保存一行中,每一列的数据String[] strings = new String[numberCells];//row.getFirstCellNum() 获得一行中实际数据所在列,不一为第一列,如图第4行for (int j = numberFirst; j < numberCells; j++) {// 数据是通过key-value方式保存,遍历是会出现空指针异常(图中红色部分)。//出现的多余没有输入的单元格会出现异常,并对没有数据输入的单元格(红色部分)是进行空字符处理try {//设置为字符类型,这里主要是因为在获取Excel数据时,//数字出现小数点,主要用于不加小数点,可以简单这么理解。大家可以看一下源码就知道什么原因了row.getCell(j).setCellType(CellType.STRING);} catch (NullPointerException e) {//出现空指针异常,说明数据没有输入,即空数据,做空字符串处理strings[j] = "";//跳过当前循环continue;}// 保存数据strings[j] = row.getCell(j).getStringCellValue();}//把获得数据添加到datadata[i] = strings;}return data;}
后言
当然,该方法不是一个很好的方法,有些还有些特殊情况处理不了。
如果你有什么改进或者更好的方法,欢迎留言。
使用POI读取Excel表格中数据相关推荐
- poiexcel 读取引用列_java用poi读取Excel表格中的数据
Java读写Excel的包是Apache POI(项目地址:http://poi.apache.org/),因此需要先获取POI的jar包,本实验使用的是POI 3.9稳定版. Apache POI ...
- python读取excel表格-python读取excel表格中的数据
使用python语言实现Excel 表格中的数据读取,需要用到xlrd.py模块,实现程序如下: import xlrd #导入xlrd模块 class ExcelData(): def __init ...
- java实现读取excel表格中的数据,兼容xls和xlsx
前言 利用 java 实现读取 excel 表格中的数据,兼容 xls 与 xlsx 格式,不用额外做区分,写不同的实现方法. 引入的依赖包 <dependency><groupId ...
- java搜索excel表格里的数据_Java读取Excel表格中的数据
前言 本文主要讲述如何在Java中读取Excel表中的数据并在控制台输出,实现工具为Eclipse 提示:以下是本篇文章正文内容,下面案例可供参考 一.添加jar包文件 描述:在Java中导入导出Ex ...
- Java读取Excel表格中的数据
文章目录 前言 一.添加jar包文件 1.在Eclipse工程下新建lib文件夹 2.复制jar包 3.将jar包粘贴到Eclipse中 4.配置构建路径 二.案例代码 1.新建类 2.获取Excel ...
- 如何读取Excel表格中不同sheet表的同一位置单元格数据,并绘制条形图呢?
作者 | 黄伟呢 来源 | 数据分析与统计学之美 今天,有位朋友在群里面咨询了一个问题:如何读取Excel表格中"不同sheet表"的同一位置单元格数据,并绘制条形图呢? 有人提议 ...
- python3读取excel数据-python3 读取Excel表格中的数据
需要先安装openpyxl库 通过pip命令安装: pip install openpyxl 源码如下: #!/usr/bin/python3 #-*- coding:utf-8 -*- import ...
- matlab数据变成一列数据,matlab读取excel表格列数据-matlab导入excel后,怎么把数据提取成一列?...
怎么用matlab读取excel表格中的一列十六进制数据? x=xlsread('oillack.xls','sheet1','a1:a73') excel文件名是oillack.xls,sheet1 ...
- python 显示表格数据_python显示excel表格数据-怎么用python读取excel表格的数据
怎么用python读取excel表格的数据 #导入包 import xlrd #设置路径 path='C:\\Users\\jyjh\\Desktop\\datap.xlsx' #打开 data=xl ...
最新文章
- SpringBoot入门和配置
- NYOJ 636 世界末日
- C语言满分代码:L1-056 猜数字 (20分)
- mysql 枚举_是否推荐使用MySQL的enum类型?
- windows10完全删除mysql_Windows 10系统下彻底删除卸载MySQL的方法教程
- 盈世邮箱服务器pop3,Coremail私有协议为什么比POP3协议、IMAP协议更好
- SEI文献整理2:A Review of Radio Frequency Fingerprinting Techniques(2020)
- Crime and Punishment
- EasyX 窗口如何最大化,以及拖拽调整大小
- FishRedux完成一个玩安卓客户端
- gnuplot命令大全
- hdmi怎么支持2k分辨率_HDMI更新了!HDMI线用户忍受了一年的问题,终于能解决了...
- android自带的webview有广告,android webview 拦截广告
- python--爬虫--获取和解析存储网页内容--以薄荷网为例
- PC实现Win10/原生安卓双系统
- Residual Reinforcement Learning for Robot Control
- 移植一个抖音贴纸组件到Flutter
- 专家:应对禽流感需储备不同种药物
- MQL5 COOKBOOK: 使用不同的打印模式
- php readfile 图片,使用php中的readfile能否读图片