《手把手教你》系列技巧篇(六十六)-java+ selenium自动化测试 - 读写excel文件 - 上篇(详细教程)

1.简介

在自动化测试,有些我们的测试数据是放到excel文件中,尤其是在做数据驱动测试的时候,所以需要懂得如何操作获取excel内的内容。由于java不像python那样有直接操作Excle文件的类库,所以我们必须借助第三方工具:POI(基于Apache的POI类库

2.常见读写Excel的工具类开源javaAPI

目前常见读写Excel的工具类开源javaAPI有两种方式:

一个是JXL(Java Excel API) 官网地址:http://jexcelapi.sourceforge.net/

一个是Apache的POI(Poor Obfuscation Implementation)官网地址:http://poi.apache.org/

POI支持微软的OLE2格式文件Office 2003及以下版本;同时支持微软的OOXML(Office Open XML)标准,也就是Office 2007以上版本。JXL只能实现对Excel 2003以下版本的支持。

POI使用HSSF对象操作OLE2格式Excel,文件后缀为.xls的;使用XSSF、SXSSF对象操作OOXML格式Excel,文件后缀为.xlsx的。

对于OLE2版本的Excel,一个Sheet工作表它的行最多支持到65536行,列支持到256列;

对于OOXML版本的Excel,一个Sheet工作表它的行支持到1048576行,列支持到16384列。

3.基于Apache的POI类库

3.1下载POI

1.打开网站http://poi.apache.org/download.html,选择下面5.2.0版本下载。如下图所示:

2.选择ZIP包下载。如下图所示:

3.下载完后解压,文件结构如下图所示:

4.项目实战

4.1jar文件添加

1.把POI文件添加在你Selenium当前项目的library中

先新建一个文件夹,把解压出来的所有的xx.jar都放在新的文件夹,然后右键你的eclipse工程> Build path > Configure build path > 点击lib > Add external jar,新建文件夹内所有的xxx.jar都选中。

或者,你只需要以下几个jar文件就可以。

 

注意,这些jar文件不在同一个路径,你需要到不同路径去拷贝复制到一个新文件夹,然后把这个文件夹的所有jar文件拷贝到你eclipse项目下的Files文件夹,需要右键你工程,新建一个叫Files的文件夹。我的项目,采取这种方法,我不希望拷贝全部jar到项目lib中。

4.2准备Excle文件

1. 准备一个test-data.xlsx文件

桌面新建一个test-data.xlsx,然后输入如下内容,并且把这个文件放到eclipse项目中。

4.3代码设计

1.新建一个ReadExcel.java的文件,输入如下代码。

4.4参考代码
package lessons;import java.io.File;
import java.io.FileInputStream;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;/*** @author 北京-宏哥* * @公众号:北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)* * 《手把手教你》系列技巧篇(六十六)-java+ selenium自动化测试 - 读写excel文件(详细教程) ** 2022年2月10日*/
public class ReadExcel {public static void main(String[] args) {try{// 指定excel的路径File src = new File(".\\Files\\test-data.xlsx");// 加载文件FileInputStream fis = new FileInputStream(src);// 加载workbook@SuppressWarnings("resource")XSSFWorkbook wb=new XSSFWorkbook(fis);//加载sheet,这里我们只有一个sheet,默认是sheet1XSSFSheet sh1= wb.getSheetAt(0);// 开始读取第一行第一列的数据System.out.println(sh1.getRow(0).getCell(0).getStringCellValue());// 读取第一行第二列内容System.out.println(sh1.getRow(0).getCell(1).getStringCellValue());// 读取第二行第二列内容System.out.println(sh1.getRow(1).getCell(0).getStringCellValue());// 读取第二行第二列内容System.out.println(sh1.getRow(1).getCell(1).getStringCellValue());// 获取实际总行数System.out.println(sh1.getPhysicalNumberOfRows());// 获取实际总列数System.out.println(sh1.getPhysicalNumberOfRows());} catch (Exception e){System.out.println(e.getMessage());}}}
4.5运行代码

1.运行代码,右键Run AS->Java Appliance,控制台输出,如下图所示:

5.小结

小伙伴或者童鞋们在运行代码时,可能会报错:主要的原因是宏哥前边的jar包内容不是很全,按照下图导入jar包,就可以了,宏哥猜测是之前的版本低,后来升级了,导致jar包改变;还有一个原因就是POI的版本和其他的不匹配。

 每天学习一点,今后必成大神-

往期推荐(由于跳转参数丢失了,所有建议选中要访问的右键,在新标签页中打开链接即可访问)或者微信搜索: 北京宏哥  公众号提前解锁更多干货。

Appium自动化系列,耗时80天打造的从搭建环境到实际应用精品教程测试

Python接口自动化测试教程,熬夜87天整理出这一份上万字的超全学习指南

Python+Selenium自动化系列,通宵700天从无到有搭建一个自动化测试框架

Java+Selenium自动化系列,仿照Python趁热打铁呕心沥血317天搭建价值好几K的自动化测试框架

Jmeter工具从基础->进阶->高级,费时2年多整理出这一份全网超详细的入门到精通教程

Fiddler工具从基础->进阶->高级,费时100多天吐血整理出这一份全网超详细的入门到精通教程

Pycharm工具基础使用教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/786868.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【wu-acw-client 使用】案例

wu-acw-client 使用 项目介绍,使用acw-client,创建对应Java项目的增删改查(ORM:Lazy ORM、mybatis),项目模块架构:mvc、feign、ddd 演示项目环境:idea 、mac、mysql、jdk17 spring …

直播回顾 | 康谋ADAS仿真与HiL测试研讨会圆满收官,精彩内容全解析,精选QA放送!

AI助力ADAS仿真测试:康谋HiL测试线上直播研讨会圆满收官! 本次研讨会特邀知名主机厂和智能驾驶公司的仿真测试领域专业技术工程师,聚焦ADAS仿真系统开发与智能驾驶系统测试,并针对测试流程和挑战,深入讲解了康谋自动驾…

Jquery——js库

1. jQuery 基础操作 jQuery 是一个快速、小巧的 JavaScript 库,设计用于简化 HTML 文档的遍历、事件处理、动画设计和 Ajax 交互。jQuery 使用户能够更快地编写 JavaScript 代码,并且能够更容易地处理 HTML 文档、事件、动画和 Ajax。 加载 jQuery 要…

物联网监控可视化是什么?部署物联网监控可视化大屏有什么作用?

随着物联网技术的深入应用,物联网监控可视化成为了企业数字化转型的关键环节。物联网监控可视化大屏作为物联网监控平台的重要组成部分,能够实时展示物联网设备的运行状态和数据,为企业管理决策和运维监控提供了有力的支持。今天,…

bizcharts中LineChart时间戳使用moment转化出现Invalid Date

文章目录 一、前言1.1、问题1.2、解决 二、bizcharts三、moment.js四、在线源码五、最后 一、前言 1.1、问题 最近在使用bizcharts绘制折线图LineChart的时候,发现X轴的时间显示成了Invalid Date。如下图所示: 发现是后端返回了时间戳字符串"1572…

联发科成功在天玑 9300 芯片部署大模型;小米SU7车载“小爱大模型”语音交互技术

🦉 AI新闻 🚀 联发科成功在天玑 9300 芯片部署大模型 摘要:联发科宣布,在天玑 9300 等旗舰芯片上首次实现大模型(通义千问)的深度适配,能够在离线状态下运行多轮 AI 对话。此外,阿…

【Servlet基础】Servlet项目创建

目录 一、认识Servlet 1.1、认识Tomcat 1.2、Servlet是什么 1.3、Servlet主要工作 二、实现第一个Servlet项目 2.1、创建Maven项目 2.2、引入依赖 2.3、创建目录结构 2.4、编写servlet代码 2.5、打包 2.6、部署 2.7、验证程序 三、利用smart Tomcat插件一键完…

152 Linux C++ 通讯架构实战7 ,makefile编写改成for cpp,读配置文件,内存泄漏查找,设置标题实战

读写配置文件代码实战。nginx.conf 一个项目要启动,需要配置很多信息,第一项就是学习如何配置一个项目 nginx.conf的内容 #是注释行, #每个有效配置项用 等号 处理,等号前不超过40个字符,等号后不超过400个字符&#…

练习 13 Web [极客大挑战 2019]Secret File

php伪协议请求&#xff0c;php代码审计 参考&#xff1a;BUUCTF__[极客大挑战 2019]Secret File_题解 没有任何上传和登录页面 查看前端源码 发现 <a id"master" href"./Archive_room.php" style"background-color:#000000;height:70px;width:20…

云计算与大数据笔记之Spark【重点:流水线机制】

图片和部分笔记来自于厦门大学-林子雨-大数据技术原理与应用&#xff08;第3版&#xff09; 配套PPT 三大分布式计算系统开源项目Hadoop、Spark、Storm Storm、Hadoop和Spark都是处理大数据的框架&#xff0c;但它们各自在设计上有着不同的侧重点&#xff0c;这导致了它们在实…

【工具-MATLAB】

MATLAB ■ MATLAB-简介■ MATLAB-应用领域■ MATLAB■ MATLAB■ MATLAB■ MATLAB ■ MATLAB-简介 MATLAB是matrix&laboratory两个词的组合&#xff0c;意为矩阵工厂&#xff08;矩阵实验室&#xff09; 美国MathWorks公司出品的商业数学软件, MATLAB和Mathematica、Maple并…

突破编程_前端_JS编程实例(分割窗体组件)

1 开发目标 分隔窗体组件旨在提供灵活的窗体分隔功能&#xff0c;支持横向分割与纵向分隔两种类型&#xff0c;并具备拖拽调整窗体比例的功能&#xff0c;同时提供最小比例设置&#xff0c;以防止窗体被过度缩小&#xff1a; 2 详细需求 2.1 分隔窗体类型 &#xff08;1&…

经纬恒润AUTOSAR产品成功适配芯来RISC-V车规内核

近日&#xff0c;经纬恒润AUTOSAR基础软件产品INTEWORK-EAS&#xff08;ECU AUTOSAR Software&#xff0c;以下简称EAS&#xff09;在芯来提供的HP060开发板上成功适配芯来科技的RISC-V处理器NA内核&#xff0c;双方携手打造了具备灵活、可靠、高性能、强安全性的解决方案。这极…

护眼台灯哪个牌子好?护眼台灯品牌排行前十名推荐

台灯可以说家家必备的一盏灯具&#xff0c;如果家长有正在上学的孩子的更需要一款好的台灯&#xff0c;因为不管是看书、写字、阅读都离不开台灯的帮助&#xff0c;而且一款好的台灯不仅仅能够提供明亮充足的照明环境&#xff0c;而且还能起到保护视力健康&#xff0c;预防近视…

【解决方案】荣耀系统Android8.0 system目录Read-only file system

本来以为直接把Charles证书改成系统证书格式&#xff0c;然后通过mt管理器root之后移动到系统证书目录就行了&#xff0c;结果访问baidu仍然显示网络错误&#xff0c;折腾一晚上。安装为用户证书&#xff0c;又与系统证书冲突。 手机型号&#xff1a;荣耀v10 EMUI&#xff1a…

【Apple Vision Pro 应用】一款专为Vision Pro设计的三维空间无尽跑酷游戏

跑酷类游戏基本上是手机时代的大爆款&#xff08;充分利用手机的交互优势&#xff09;&#xff0c;代表神庙逃亡、地铁跑酷等&#xff0c;在VP眼镜端&#xff0c;还能玩出什么花样来&#xff0c;我知道我身边有一个创业者在做&#xff0c;目前还没上线&#xff0c;分享一家国外…

vite + vue项目报错:Uncaught ReferenceError: globalThis is not defined

vite vue项目报错&#xff1a;Uncaught ReferenceError: globalThis is not defined。 原因是&#xff0c;谷歌浏览器版本太低&#xff0c;引用的第三方库不支持导致。 解决方法&#xff1a;在index.html中添加 <script>this.globalThis || (this.globalThis this) &…

需要本地后端的真机调试-微信

打开和修改IP改为电脑与手机同一局域网的 不知道这个要不要

Spring Boot项目启动速度优化

1、配置自动配置排除列表&#xff0c;减少启动自动配置扫描&#xff0c;配置项spring.autoconfigure.exclude 2、启动类添加索引注解Indexed&#xff0c;去除启动过程中 Components 的扫描步骤&#xff0c;直接从索引文件读取。 import org.springframework.stereotype.lndexe…

AIGC浪潮下,鹅厂新一代前端人的真实工作感受

AIGC 这一时代潮流已然不可阻挡&#xff0c;我们要做的不是慌乱&#xff0c;而是把握住这个时代的机会。本文就和大家一起来探索在 AIGC 下&#xff0c;前端工程师即将面临的挑战和机遇。聊聊从以前到现在&#xff0c;AIGC 给我们带来了怎么样的变化&#xff0c;下一代前端工程…