ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2022-02-21 15:32:22  阅读:163  来源: 互联网

标签:java excel selenium System Cell println import 六十八 out


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包,将其引入项目中成功解决报错。

 

标签:java,excel,selenium,System,Cell,println,import,六十八,out
来源: https://www.cnblogs.com/du-hong/p/15879257.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有