四种方法实现自动化的逻辑部分和数据处理独立性-3.1

上一篇 / 下一篇  2013-01-10 11:30:17 / 个人分类:Selenium

Z ID;mqP$p0Q7L2Y0三、使用excel表格读取测试数据

"Cdq_6` G5G051Testing软件测试网6f6Z6f e9r;A

1. 首先我们要用到的readExcel()这个方法,由于此方法中涉及到一些操作Excel 表格的API方法引用自jxl.jar这个包,所以大家需要确保在项目的Java Build Path里边需要添加testng.jar这个包。51Testing软件测试网0j?;`_2rox

51Testing软件测试网sEn iOw,K,J{t

注:jxl.jar这个jar包可以在网上搜索到的,下载下来就可以用了,这次试验用到的是这个jar包。当然我们也可以通过java的poi技术读取和导入Excel,感觉poi技术比使用jxl.jar 包难一些,但是poi的功能很强大。51Testing软件测试网 lb~\%R4G9E"U1lu$Sz

"y2n#k1IL fy0 51Testing软件测试网%Y+i+AmT9h0Ac2mS

51Testing软件测试网y|?-c*``

我把readExcel()这个方法放在一个单独的类里边,类名为ExcelReader,如下51Testing软件测试网"fr`w8Py?L

51Testing软件测试网d4q!k.YP|7du

package com.test.java;

eQ0Jqk0

f-~6e"}"p\0 

![!tY_v%w {4Z^0

b| L.WW5n Fs0import java.io.File;51Testing软件测试网ysm*iR@ w| W

lIC&t^g.f0import java.io.FileInputStream;

i.P ez0HD)O051Testing软件测试网D|;a9yR&y#i

import java.io.IOException;

](Wu4nV8\051Testing软件测试网}4c+Wz&OCP-L8A a {

import java.io.InputStream;51Testing软件测试网'W2sn%p4g j:r]

X!]S6qk&X0import java.util.ArrayList;

2dT"\B:r0

f8w Vk;gT&a0import java.util.List;

qN9F-W${h0

6Ew5OM7_b|j^0 

S*MIM6k-K.d051Testing软件测试网.j-x:Z"|,US

import jxl.Cell;

6q/biNv1Z5gG0

%|9GZ a!PW?X0import jxl.Sheet;51Testing软件测试网 hNE b ~8c5H%Qlj

rC)VI2I%V8NU0import jxl.Workbook;51Testing软件测试网6J0e:GTHo

51Testing软件测试网;Nl(mg6l bokyi

import jxl.read.biff.BiffException;

'GcZ4L(f051Testing软件测试网9[.g%]4i*W$`pd

 51Testing软件测试网K+YXL*k_/Y2\3UD

51Testing软件测试网e0| q.D;^b

/**51Testing软件测试网/\2x,s@2{,X

{+^(J.M Z c Q0 * 读取excle公共方法51Testing软件测试网K Si{*j O;Y k

6G2dv2j1NT;S'U0 * @author Rob

Im*k&zQ%Out0

C |.NMROLn2_0 *51Testing软件测试网s5X;[)OD7q6R

51Testing软件测试网 wTL{1} Tjj

 */51Testing软件测试网d ^!fNs

%ip6G RvG0public class ExcelReader51Testing软件测试网0@3G Q+v qY)Gy/B

f Xr\*zZVP y0{51Testing软件测试网5wuYbgy6e`9ag

h ^:?A S5@a!hMv0    /**

?Q H1SV3N!bj0

~/WB3d D0     *51Testing软件测试网 XP a^9e

r,]Sp;|@T5g2U0     * @param excelFile 读取文件对象51Testing软件测试网:j*Ih9D F W%j

)`8Ee0Vmq)X g0     * @param rowNum 从第几行开始读,如果有一行标头则从第二行开始读51Testing软件测试网u.xh.h!c#J6|\t

Gi$jt)\i0     *51Testing软件测试网Ma'u+~ vE%XbW

51Testing软件测试网pn8_c7ES_Qve

     * @return

L hY Qr051Testing软件测试网2`D c6F;Oe!SH2q

     * @throws BiffException

}*o:{ @*bn`i!gM0

IIp~8W@W0     * @throws IOException

7QN@/Z*l'Ra'T'l0

Z {T JA C+XP4ia2|0     */51Testing软件测试网q{)E PvN'M#h2qN?

T5{3M-CHooAh0  51Testing软件测试网"ICl UvG6z,A

51Testing软件测试网zA)BA%zz!j

    public static String[] readExcel(File excelFile, int rowNum) throws BiffException,IOException51Testing软件测试网?3|5a$}*`yD6c7t,PR

RjA3tK&ZZ#g cI0    {51Testing软件测试网#r5w#_:vd,a B4p H

4y!\0i2M"P0       // 创建一个list用来存储读取的内容51Testing软件测试网-MM|V{*Q'?#[)z)c3k

51Testing软件测试网s H c F k|r4Vp1o

       List<String[]> list = new ArrayList<String[]>();

#]Q^.h#U4{T051Testing软件测试网N2y\.n/q#_3BA

       Workbook rwb = null;

:fm}4|:Yp'J8_C051Testing软件测试网|zC5o1@3XI

       Cell cell = null;

&zi$vrj5zUY].I!n051Testing软件测试网5D}'Cts$B0a P

       // 创建输入流51Testing软件测试网 T'z9o)A9I;Dk

51Testing软件测试网k o Jis+Q2N P h

       InputStream stream = new FileInputStream(excelFile);51Testing软件测试网 rx#zN?.p

51Testing软件测试网iV'l M7kz

       // 获取Excel文件对象

P-f)N9LE"A-S0

@i7mm:F SNp0       rwb = Workbook.getWorkbook(stream);

VF6l[iO@0

,TT-yh Sqg0       // 获取文件的指定工作表  默认的第一个

x;H!?r5T4x0

m8B mRSf9Ob:Z0       Sheet sheet = rwb.getSheet(0);

UJ&Q#S&s0

O5T%x1d:c5m3e ] ~0       // 行数(标头的目录不需要,从1开始)

*?0kx4Dw^ j7JG051Testing软件测试网!y ^4W(K3Y

       for (int i = rowNum-1; i < sheet.getRows(); i++)51Testing软件测试网VaEit#Dt4f0{)r&C4YzG

0ZjFBD:M0       {51Testing软件测试网8s[1e}'E+Y.OO*l

51Testing软件测试网V]3R.r{!rpU!o

           // 创建一个数组  用来存储每一列的值51Testing软件测试网;_ \)]s%BE,x

51Testing软件测试网9ndS9Q [g1H

           String[] str = new String[sheet.getColumns()];51Testing软件测试网?)q.J2z{

51Testing软件测试网)e$o)B]TK-MJ"z

           // 列数51Testing软件测试网U?9m"vQ$R

51Testing软件测试网xW7];x;Yt-{8V O

           for (int j = 0; j < sheet.getColumns(); j++)51Testing软件测试网 ^1?{f$Wbw*AAI

&^o0K1p&q,ia0           {51Testing软件测试网.Pg!QC r5@;G

#t-FH [d;YD.N0              // 获取第i行,第j列的值51Testing软件测试网;|bC#RMyx)@8k+m

51Testing软件测试网9Se1r{,H#|$bf

              cell = sheet.getCell(j, i);51Testing软件测试网!~1x/JSV4y:Z0{ V'oJ

51Testing软件测试网zH;u9m@6GS:\P

              str[j] = cell.getContents();

}dpZn#S\ z051Testing软件测试网 oR'o5kh i1?l-tG)`

           }

f$[7j:V!FLc.yp,N0

c P:TM*L)wv(x9[^R0           // 把刚获取的列存入list51Testing软件测试网J4B,@q+i5w

"nsLM/og0           list.add(str);          

#j7QU8Cc.E-ON051Testing软件测试网@5B J| t.u0JP

       }51Testing软件测试网*Ao+P)lX-?7A8fin?

/bD.ZInG/[_)X0       return list.get(rowNum);51Testing软件测试网u*Y{LVd@AB

y v5Q*D ]N0    }51Testing软件测试网y7Y*K0\o:KW%P

51Testing软件测试网y e2Ga^3q@e

    }

hV5uA0X(X$wr0

TAG:

引用 删除 huangyong   /   2016-02-28 15:41:01
5
 

评分:0

我来说两句

Open Toolbar