Java+Selenium3方法篇42-利用POI读写excel文件
来源:互联网 发布:坐车软件哪个好 编辑:程序博客网 时间:2024/06/05 05:42
本篇介绍一个第三方工具POI,由于Java的跨平台特性,所以Java没有直接操作excel文件的库支持。在自动化测试,有些我们的测试数据是放到excel文件中,所以需要懂得如何操作获取excel内的内容。
1.下载POI
打开网站http://poi.apache.org/download.html,选择下面3.16版本下载。
选择ZIP包下载。
下载完后解压,文件结构如下
2. 把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中。
3. 准备一个test-data.xlsx文件
桌面新建一个test-data.xlsx,然后输入如下内容,并且把这个文件放到eclipse项目中。
4..新建一个ReadExcel.java的文件,输入如下代码。
package lessons;import java.io.File;import java.io.FileInputStream;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;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());}}}5.运行结果
user1user1@abc.comuser2user2@abc.com4我尝试找了很久,发现有获取excel内sheet总行数的方法,我说的行是值水平上一行数据,叫行。但是没有获取总列数的方法。POI确实没有获取总列数方法。上面的测试文件一共有4行2列数据。
6.换成循环打印excel内数据
由于我们知道获取总行数的方法,至于列数,我们只能事先确定,例如上面事先确定是2列,但是不确定有多少行。这个只是循环遍历当前sheet的内所有有数据的单元格。
package lessons;import java.io.File;import java.io.FileInputStream;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;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);// i 控制行for(int i=0;i<sh1.getPhysicalNumberOfRows();i++){// j是控制列,我们上面数据是2列for(int j=0;j<2;j++){System.out.println(sh1.getRow(i).getCell(j).getStringCellValue());}}} catch (Exception e){System.out.println(e.getMessage());}}}
7. 写入内容到excel
例如,我们需要在上面test-data.xlsx文件第三列标上Fail或者Pass,请看下面脚本如何实现。
package lessons;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;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);//写入excel数据sh1.getRow(0).createCell(2).setCellValue("Pass");sh1.getRow(1).createCell(2).setCellValue("Fail");sh1.getRow(2).createCell(2).setCellValue("N/A");sh1.getRow(3).createCell(2).setCellValue("Pass");// 保存文件FileOutputStream fout=new FileOutputStream(new File(".\\Files\\test-data.xlsx")); //覆盖写入内容 wb.write(fout);// 关闭文件fout.close();} catch (Exception e){System.out.println(e.getMessage());}}}运行完后,手动打开test-data.xlsx,效果如下
- Java+Selenium3方法篇42-利用POI读写excel文件
- Java 利用Apache POI 读写Excel文件超出行列限制
- Java+Selenium3方法篇44-利用opencsv读取csv文件
- Java POI读写Excel文件
- 利用POI 组件包读写Excel文件
- 利用Apache POI读写Microsoft Excel文件
- java利用poi包读写excel
- Java+Selenium3方法篇43-利用Jexcel操作2003版本excel
- iMOOC学习笔记:Java的Excel读写操作入门实践-利用POI生成Excel文件(一)
- iMOOC学习笔记:Java的Excel读写操作入门实践-利用POI解析Excel文件(二)
- java EXCEL文件读写工具包POI
- Java通过POI读写Excel文件
- Java通过POI读写Excel文件
- Java通过POI读写Excel文件
- Java通过POI读写Excel文件
- 使用POI实现Java读写Excel文件
- Java通过POI读写Excel文件
- Java POI 读写Excel 文件简单实现
- 基于百度AI的文字识别-Python
- STL中vector<type>的复制
- libcurl console 中文乱码
- 中文分词工具整理
- Position详解
- Java+Selenium3方法篇42-利用POI读写excel文件
- SQL Server CHARINDEX和PATINDEX详解
- 排序专用--javascript
- 运维小白的python之路——paramiko
- 访问数据库地址的授权
- Model的常用方法
- aidl通信进阶,使用binder连接池
- 输入一个链表,从尾到头打印链表每个节点的值。
- ROWNUMBER、RANK、DENSE_RANK、NTILE排名窗口函数示例