51Testing软件测试网 J wE
xme0^利用Jscrīpt操作Excel
)@"^+g
LQ0*^#]*JY5?G0陈能技
{u[B%[Ro.z02007-9-26
S1h&\B%?0yb?$P+V051Testing软件测试网q6Z7UG!a RL9Y tnJscrīpt是轻量级的脚本语言,但是由于提供了ActiveXObject对象,使其编程能力大大扩展,能调用任何通过Automation接口调用的对象,例如Excel。
x'S
^oA4i'S(^z051Testing软件测试网^6U#dQ?J+_0m$oU|Excel是很对应用程序需要调用和操作的对象,例如输出报表数据到Excel。那么对于这些输出结果的检查可以通过Jscrīpt轻松完成。
R
I$e(MQ&h
`g0$Kooh0j%](sG0当然,前提是对Excel的对象模型比较了解,例如知道Excel的几个主要类:Application、Workbook、Worksheet、Range的使用方法以及它们之间的关系。Application对象表示整个应用程序,每个Workbook对象都包含Worksheet对象的一个集合。Range则主要用于单元格抽象表示的对象,用于处理单个单元格或成组的单元格。
1f
m#d2DP P0w9y^(][$W8@0在Jscrīpt中,通过ActiveXObject对象来启用并返回Automation对象的引用。例如,下面脚本创建Excel应用程序的对象引用:51Testing软件测试网DfIfO+FZ2`9jw(n
Var ExcelApp;
bUTg'ef"q0ExcelApp = new ActicveXObject(“Excel.Application”);
K
`0Iq(FW0`:lN fi)oj{0另外,Jscrīpt还提供Getobject函数用于从文件中返回对Automation对象的引用。例如,下面脚本启动指定目录的文件相关的应用程序的一个新的实例:
!~Z1^VOM051Testing软件测试网ya
v
LI-Y-eVar CADobject;51Testing软件测试网?8^kl/g.w6Pd6o
CADObject = GetObject(“C:\\CAD\\SCHEMA.CAD”);
0K}i u1y
~ NDo'K0c b)b4?f0获得对Excel应用程序对象实例的引用后,就可以使用Excel中的各种对象和属性、方法。例如,下面脚本新建一个表单,然后往第一个单元格插入文字,最后保存并退出Excel:
.h$f'f5qN:R*e8z051Testing软件测试网k8_R9x$i&M&_var ExcelSheet;
Z-E t6op:e0ExcelApp = new ActiveXObject("Excel.Application");
Y Cj;eP9d|0ExcelSheet = new ActiveXObject("Excel.Sheet");
CF ^i3_!yW051Testing软件测试网JS9H0Vqc0J//让Excel可见
bNZy/KJ0ExcelSheet.Application.Visible = true;
v[tt#~ MG0V
[R5kK$Eq0//往第一行第一列所在的单元格插入一段文字51Testing软件测试网MdM7H)U
c9E
ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is Column A, row 1";51Testing软件测试网-z(L"N)u4s:V6a2q
9`}u9d'z,XQ0//保存并退出51Testing软件测试网1`9~/?Jd2gj;x1cCs#b
ExcelSheet.SaveAs("C:\\TEST.XLS");51Testing软件测试网3@+J6f6lf)cu
ExcelSheet.Application.Quit();51Testing软件测试网P3FXva|-^T
lJ\ dVc&IW0而下面的脚本则用于打开某个Excel表,然后读出第一个单元格的文字:51Testing软件测试网 L/O2] XJ(d pm.J
51Testing软件测试网8KW6Z-sl,K
B*P }var ExcelSheet;
l-U f:X*d8G0ExcelApp = new ActiveXObject("Excel.Application");
0AD'_0k p5f
]0ExcelApp.Workbooks.Open("C:\\TEST.XLS");
s;n+i
?#t
r&U'i051Testing软件测试网8?6g]3m4qt AExcelSheet = ExcelApp.ActiveWorkbook.Sheets(1).Select();
u8mjp'm0ExcelApp.Visible = true;51Testing软件测试网dV)\d+H
D
51Testing软件测试网GW0C1F!i9U#gvR//读取第一个单元格的值
_d#T~Z9nT"t#j
t0var abc = ExcelApp.ActiveWorkbook.Sheets(1).Cells(1,1).Value;51Testing软件测试网 dH)jQ{2lw9A
Wscrīpt.Echo(abc);
$YCRzOd`%]0