在数据量不大时,我们可以使用xls格式文件进行读写操作,同时也可以对单元格内容进行设置,而不像csv文件一样保存后格式就无,还有数字特长时总是出现科学计数法,导致读取后内容有问题。
这里找到一个java软件包jxl包,可以用来操控excel文件,其下载以下链接说明
操控xls文件的jxl包下载_agrapea的博客-CSDN博客
今天先学习下如何读取文件内容,在D盘根目录下创建以下文件,分别是手机号,验证码和ID
将下载的jxl包放入到jmeter安装目录lib/ext下,此时打开jmeter,建立一个beanshell sampler,
在其中建立一个outbasicXLSuse()方法,如下:
- public static void outbasicXLSuse(File f) throws Exception{
- //1.先创建Workbook对象,通过getWorkbook()获取文件
- Workbook book=Workbook.getWorkbook(f);
-
- //2.获取到文件后再通过getSheet()获取工作表,通过getNumberOfSheets获取sheet个数
- Sheet sheet1=book.getSheet(0);
- int sheetNum=book.getNumberOfSheets();
- //System.out.println("sheet个数:"+sheetNum);
- log.info("sheet个数:"+sheetNum);
- //通过getName()获取到sheet名称
- log.info("sheet1名称:"+sheet1.getName());
- //通过getSheets()获取所有sheet对象数组
- Sheet[] sheets=book.getSheets();
- log.info("sheet2名称:"+sheets[1].getName());
-
- //3.获取到sheet后再通过getRows()、getColumn()获取行数和列数
- int rows=sheet1.getRows();
- int columns=sheet1.getColumns();
- log.info("sheet1的行数及列数:"+rows.toString()+","+columns.toString());
-
- //4.获取到sheet后通过getCell(int column,int row)获取单元格引用,通过getContents()获取单元格内容
- Cell cell=sheet1.getCell(0,0);
- String cell00=cell.getContents();
- log.info("1行1列单元格内容:"+cell00);
-
-
- //通过getRow()/getColumn()获取某一行、某一列所有单元格并返回数组
- Cell[] row1=sheet1.getRow(1);
- log.info("第2行:"+row1[2].getContents().toString());
- Cell[] column1=sheet1.getColumn(1);
然后测试下以上的输出:
首先导入包
import jxl.*;
//测试文件路径
testDataPath="D:/测试excel.xls";
File f=new File(testDataPath);
//调用方法
outbasicXLSuse(f);
需要注意的是,在beanshell中,必须先import,然后再写方法,最后才调用方法。