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

简介: 【6月更文挑战第9天】本文介绍了如何使用Java处理Excel文件中的不同数据类型,包括日期、数字、布尔值和标签(常规字符串)。文章提供了两个示例,分别使用JXL库和Apache POI库来读取Excel文件。

1.简介

今天继续操作Excle,小伙伴或者童鞋们是不是觉得宏哥会介绍第三种工具操作Excle,今天不介绍了,有两种就够用了,其实一种就够用了,今天主要是来介绍如何使用不同的数据类型读取Excel文件。在实际测试中,您可能不得不处理除String之外的多个数据类型的Excel文件数据。 在本教程中,我们将使用不同的数据类型读取Java中的excel文件。

2.准备不同数据类型的Excle

1.我们将尝试读取下面的excel,因为可以看出,excel在前四个单元中有Date,Number,Boolean和Label(常规字符串)数据。

2.把这个文件放到eclipse项目中,如下图所示:

3.JXL使用不同的数据类型读取Excel文件

3.1代码设计

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

3.2参考代码

package lessons;


import java.io.File;

import java.io.IOException;


import jxl.BooleanCell;

import jxl.Cell;

import jxl.CellType;

import jxl.DateCell;

import jxl.LabelCell;

import jxl.NumberCell;

import jxl.Sheet;

import jxl.Workbook;

import jxl.read.biff.BiffException;


/**

* @author 北京-宏哥

*

* @公众号:北京宏哥

*

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

*

* 2022年2月15日

*/


public class OperateExcle {

   

   public static void main(String[] args) {    

       //从指定位置的文件创建工作簿对象;根据计算机上的位置更改文件的路径。

       Workbook wrk1;

       try {

       

           wrk1 = Workbook.getWorkbook(new File(".\\Files\\test-data1.xls"));


           //获取工作簿中第一个工作表的引用

           Sheet sheet1 = wrk1.getSheet(0);


          //使用工作表的getCel(int col, int row)方法获取对单元的引用

           Cell cell1 = sheet1.getCell(0, 0);

           Cell cell2 = sheet1.getCell(1, 0);

           Cell cell3 = sheet1.getCell(2, 0);

           Cell cell4 = sheet1.getCell(3, 0);


           DateCell dCell = null;

           NumberCell nCell = null;

           BooleanCell bCell = null;

           LabelCell lCell = null;


           // 检查单元格内容的类型,并将该对象转换为适当的引用类型

           if (cell1.getType() == CellType.DATE)

               dCell = (DateCell) cell1;


           if (cell2.getType() == CellType.NUMBER)

               nCell = (NumberCell) cell2;


           if (cell3.getType() == CellType.BOOLEAN)

               bCell = (BooleanCell) cell3;


           if (cell4.getType() == CellType.LABEL)

               lCell = (LabelCell) cell4;


           // 显示单元格内容

           System.out.println("Value of Date Cell is: " + dCell.getDate());

           System.out.println("Value of Number Cell is: " + nCell.getValue());

           System.out.println("Value of Boolean Cell is: " + bCell.getValue());

           System.out.println("Value of Label Cell is: " + lCell.getString());


       } catch (BiffException e) {

           e.printStackTrace();

       } catch (IOException e) {

           e.printStackTrace();

       }


   }



}

3.3运行代码

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

4.POI使用不同的数据类型读取Excel文件

4.1代码设计

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

4.2参考代码

package lessons;


import java.io.File;

import java.io.FileInputStream;

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;


/**

* @author 北京-宏哥

*

* @公众号:北京宏哥

*

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

*

* 2022年2月15日

*/

public class ReadDiffExcle {


   public static void main(String[] args) {

       File f = new File(".\\Files\\test-data1.xls");

       try {

               FileInputStream is = new FileInputStream(f);

               @SuppressWarnings("resource")

               HSSFWorkbook wbs = new HSSFWorkbook(is);

               HSSFSheet childSheet = wbs.getSheetAt(0);

               // System.out.println(childSheet.getPhysicalNumberOfRows());

               System.out.println("有行数" + childSheet.getLastRowNum());

               for (int j = 0; j < childSheet.getLastRowNum(); j++) {

                       HSSFRow row = childSheet.getRow(j);

                       // System.out.println(row.getPhysicalNumberOfCells());

                       // System.out.println("有列数" + row.getLastCellNum());

                       if (null != row) {

                               for (int k = 0; k < row.getLastCellNum(); k++) {

                                       HSSFCell cell = row.getCell(k);

                                       if (null != cell) {

                                               switch (cell.getCellType()) {

                                               case NUMERIC: // 数字

                                                       System.out.print(cell.getNumericCellValue()

                                                                       + "   ");

                                                       break;

                                               case STRING: // 字符串

                                                       System.out.print(cell.getStringCellValue()

                                                                       + "   ");

                                                       break;

                                               case BOOLEAN: // Boolean

                                                       System.out.print(cell.getBooleanCellValue()

                                                                       + "   ");

                                                       break;

                                               case FORMULA: // 公式

                                                       System.out.print(cell.getCellFormula() + "   ");

                                                       break;

                                               case BLANK: // 空值

                                                       System.out.print(" ");

                                                       break;

                                               case ERROR: // 故障

                                                       System.out.print(" ");

                                                       break;

                                               default:

                                                       System.out.print("未知类型   ");

                                                       break;

                                               }

                                       } else {

                                               System.out.print("-   ");

                                       }

                               }

                       }

                       System.out.println();

               }

       } catch (Exception e) {

               e.printStackTrace();

       }

}


}

4.3运行代码

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

5.小结

宏哥在代码运行的时候由于POIjar包的升级,有些变量可能会和旧的版本有区别,运行过程报错:java.lang.ClassNotFoundException: org.apache.commons.math3.util.ArithmeticUtils。可能是由于引入小数,需要数学的jar包,将其引入项目中成功解决报错。


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


往期推荐(由于跳转参数丢失了,所有建议选中要访问的右键,在新标签页中打开链接即可访问):


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

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

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

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

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

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

Pycharm工具基础使用教程

 

相关文章
|
4月前
|
Java API 数据处理
深潜数据海洋:Java文件读写全面解析与实战指南
通过本文的详细解析与实战示例,您可以系统地掌握Java中各种文件读写操作,从基本的读写到高效的NIO操作,再到文件复制、移动和删除。希望这些内容能够帮助您在实际项目中处理文件数据,提高开发效率和代码质量。
99 4
|
6月前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
216 31
Selenium IDE:Web自动化测试的得力助手
|
6月前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
426 17
Selenium:强大的 Web 自动化测试工具
|
8月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
8月前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
1534 5
|
8月前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。
|
8月前
|
XML JavaScript Java
java与XML文件的读写
java与XML文件的读写
98 3
|
8月前
|
测试技术 数据安全/隐私保护 开发者
自动化测试的奥秘:如何用Selenium和Python提升软件质量
【9月更文挑战第35天】在软件开发的海洋中,自动化测试是那艘能引领我们穿越波涛的帆船。本文将揭开自动化测试的神秘面纱,以Selenium和Python为工具,展示如何构建一个简单而强大的自动化测试框架。我们将从基础出发,逐步深入到高级应用,让读者能够理解并实现自动化测试脚本,从而提升软件的质量与可靠性。
|
7月前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
118 0
|
9月前
|
Web App开发 JavaScript Java
自动化测试的利剑:Selenium WebDriver入门与实践
【9月更文挑战第21天】在软件开发的海洋中,自动化测试犹如一艘船,帮助开发者们快速航行至质量保证的彼岸。本文将作为你的罗盘,指引你了解和掌握Selenium WebDriver这一强大的自动化测试工具。通过深入浅出的方式,我们将探索Selenium WebDriver的基本概念、安装过程以及编写简单测试脚本的方法。无论你是刚接触自动化测试的新手,还是希望提升测试技能的开发者,这篇文章都将为你提供有价值的指导。