perl & excel
上一篇 / 下一篇 2009-10-07 20:49:26 / 个人分类:Perl Language
*Ps
hs m
\0E)F` ^|0#!/usr/bin/perl -w51Testing软件测试网-o"{7@^4a\1nva
use strict;51Testing软件测试网6Do!G4Q6OLep*IbH
use Spreadsheet::WriteExcel;
h
m8Ij3t-XsSs5@0use Spreadsheet::ParseExcel;51Testing软件测试网)pxZpH$d
my $report_title = "Product Verison: xx.xx.xx Testing Report";
2z
a\$N_,Q xW0my @testsuit = ("TestSuite", "TS_1","TS_2");
.h Zd d$G.[V0my @testenv = ("TestEnv","TestEnv1","TestEnv2","TestEnv3");51Testing软件测试网!fg4C2^(B7S#a
(M LH4O&f
NMcO0Q['j0my $start_num = 6;51Testing软件测试网po1h
nlF:{#o
my $num_ts = @testsuit - 1;
Kv
yb0Z.uN*h/W1@
M-V0my $num_env = @testenv-1;51Testing软件测试网e)U,o2~
z0s1u5?-d
my $num_total = 0;
6TGNtr:}h0my $num_pass = 0;
uy(eL|:Y n(t&SK0my $num_fail = 0;51Testing软件测试网a3H$P ~;}E9Q,|&C&_2R
my $num_na = 0;
}(Q'G M/Ct$t0my $num_other =0;
my $workbook=Spreadsheet::WriteExcel->new("CellFormatting.xls");51Testing软件测试网2[gn1b
W%t+?{
die "Problems creating new Excel file: $!" unless defined $workbook;51Testing软件测试网1rB0xw4b?i
+oT,vMcx"P-m`*f0my $worksheet1 = $workbook->add_worksheet("Overview");
*M#{9VG`,olG0my $worksheet2 = $workbook->add_worksheet("Test Result");
########################51Testing软件测试网`"bxdh
##Format setting
g(PdD/Y6Y k @o0########################
~N*}xH{"e0my $fmt_default = $workbook->add_format();
.]QW$A%BU8q%G] ?f0my $fmt_normal = $workbook->add_format();51Testing软件测试网R1A-uN3F4p2J{\O ?
my $fmt_title = $workbook->add_format();51Testing软件测试网+YQg2u$zi
my $fmt_subtitle = $workbook->add_format();51Testing软件测试网@5{;n0E\6C.e
my $fmt_subtitle_forMerge = $workbook->add_format();51Testing软件测试网iJ-e|:n
my $fmt_pass = $workbook->add_format();
7`!Mc]e:x0my $fmt_fail = $workbook->add_format();51Testing软件测试网7`v9c^ s({(g%H6pR Fj
my $fmt_na = $workbook->add_format();51Testing软件测试网~
?M
hF*_*R:h5]
$fmt_default->set_font("Arial");51Testing软件测试网Z-K5Yey I g
$fmt_default->set_bold("1");
!N d }5x_v @a8G0$fmt_default->set_color('black');51Testing软件测试网2i e,}q@0cG"[i%H!K
$fmt_default->set_size("11");
]jV
D:F*y~c0$fmt_default->set_align('center');
Y/f;IS h0gNi0$fmt_default->set_align('vcenter');51Testing软件测试网1Wr+p~6}
$fmt_default->set_border("1");
$fmt_title->copy($fmt_default);51Testing软件测试网(uk+L@:}A)@,K
$fmt_title->set_color("blue");51Testing软件测试网/gx)Z"[xg1cq0Y8z
$fmt_title->set_border("5");
V8b;O}k0$fmt_title->set_size("16");
$fmt_subtitle->copy($fmt_default);51Testing软件测试网.x6_ySWp)}6^7D,p
$fmt_subtitle->set_color("black");51Testing软件测试网r*}E%O
hWo
$fmt_subtitle->set_border("5");51Testing软件测试网#y;O!{SK-I.ie
$fmt_subtitle->set_size("12");
@4HX$[;KC6}.I6h0$fmt_subtitle->set_bg_color("orange");
5upl/x-VL2q G0$fmt_subtitle->set_text_wrap();
h]g_d@
|ZJ0$fmt_subtitle_forMerge->copy($fmt_subtitle);
q9P:U\+_:Y0I0$fmt_pass->copy($fmt_default);
4d y9cu4J&d0$fmt_pass->set_color("green");51Testing软件测试网o a`fp+t5ol
f-]9i
$fmt_fail->copy($fmt_default);51Testing软件测试网r!J^
oqr1U
$fmt_fail->set_color("red");
`
h;q
X%P:Pc"y0$fmt_na->copy($fmt_default);51Testing软件测试网6FO/C'M(n0Q7w
$fmt_na->set_color("blue");51Testing软件测试网,t llka4nZ
$fmt_normal->copy($fmt_default);51Testing软件测试网U-~"`|7f~L
$fmt_normal->set_color("black");
u*P%Hi*H6L]1t-n0########################
V.AB.HGOIe'`s0##write title51Testing软件测试网5o*@Kf5o)klznu
########################51Testing软件测试网mC6h&k
bx7?L.X\"A
$worksheet1->merge_range('A1:H1',$report_title,$fmt_title);51Testing软件测试网R3e3}n5B$o)l
$worksheet1->merge_range('A2:A5',$testsuit[0],$fmt_subtitle_forMerge);
` Q2B8Ov5B1ZW0$worksheet1->merge_range('B2:B5',$testenv[0],$fmt_subtitle_forMerge);51Testing软件测试网8S'p:H7L
[@'u? n
"cr'I
ni5T0########################
Nff%_Jp9bD5T0##Add Test Suit for Overview51Testing软件测试网 jN+G9s ZC
########################
8M0_:_o.hi;WMN0my $i = 0;51Testing软件测试网}?-Pj@[(C
my $j = 0;
for ($i = 0; $i < $num_ts; $i++)
2l,dG,u3O0{51Testing软件测试网:?Nz
Q4byHD
my $start =$start_num + $i * $num_env;51Testing软件测试网L:_I~J J |#Q+d]
my $end = $start + $num_env -1;
wqi~"[&o0 51Testing软件测试网"O pRcw+|2R
print "start: $start, end: $end\n";
7G5{6sm*|2Y1q0 $worksheet1->merge_range("A$start:A$end","$testsuit[$i+1]",$fmt_default);
}
4G3R'e4|G,n4d#N-y0Y"n0print ("Finish Adding test suit!\n");51Testing软件测试网t _0J,pKv6z
1zs7Z(DJ/Z#t0########################
O3d#p2p5K0##Add Test Env
"j
L t%F&|R]0########################51Testing软件测试网I:P%M4`7KH
my $ts_start = $start_num;
aVM7h%CuC/k@0for ( $i =0; $i < $num_ts; $i++) {51Testing软件测试网;b%{K&zr0eG
for ( $j = 0; $j < $num_env; $j++)
/S~&j.{+M{rB0 {51Testing软件测试网+R
I,~8?
j2s
print("$i: B$ts_start: $testenv[$j+1]\n");51Testing软件测试网 qViz9IP
Tfj/A,o6xd,i't)~0 $worksheet1->write("B$ts_start", "$testenv[$j+1]",$fmt_normal);51Testing软件测试网;^;S-}/{-oT
$ts_start++;
7y5Y7z:JuI0 }51Testing软件测试网~@tf2aRG[
}
(a5r4TC7jv cBn a}0########################
T)FF+Xkx7^~0###Parse Client List File51Testing软件测试网@?I5Fde,]&e
########################51Testing软件测试网`yT@{*w#~6d!|V
my $clientListFile="ClientList.txt";
,K.x;m\O;UP
[0my @kernel_info = GET_ARRAY($clientListFile);
3c
MN^9ba2C_0$worksheet1->write_row("C2",\@kernel_info,$fmt_subtitle);
1HW:h^:o`\%y#T0########################
~?*E$r3G-d|eC0###Parse the framwork file
Xq7t;y2p0########################
+N0m J]/f0my $parser = Spreadsheet::ParseExcel->new();51Testing软件测试网\
`8n"t,e9F
my $workbookForParse= $parser->Parse('SrcData.xls') or die "Could not open source Excel file!!\n";51Testing软件测试网t8b {X)I-s.I
I6\
my $worksheet2parse = $workbookForParse->worksheet('Overview');
s$x1H:VZ,U$f0
Tl(@Z#Cu|L0########################51Testing软件测试网.s7q)YkC,[0e]Db
###Parse Result File51Testing软件测试网+F
j?5x1~m(z^f
########################51Testing软件测试网%In,T3o'j-e0\J/U
my $testResultFile = "testResult.txt";
"r
J
cfR8zG0my @test_result = GET_ARRAY($testResultFile);51Testing软件测试网tDU0^W5g3T8XP
c6XS9fW9L0########################51Testing软件测试网"h
]Ra}u/m0M
##Fill in test result in the report file51Testing软件测试网MN&oA-DD&R
########################
nxt_0]+J+I0#$i = 0;51Testing软件测试网:cfjj^${ D#EF
##Test Suite start row number. A6
3qCv,\8?l c0$ts_start = 6;
\/J
Dpw;m0##TestSuite count number." TC_1/TC_2"51Testing软件测试网0Dh?OgY3z;J
i
my $ts_num = 2;