wsh遍历excel中sheet是否存在

前言

检测sheet是否存在很容易,主要是要做好抛出异常,异常可以视为不存在。

js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function openXLS() {
var XlsPath='test.xls';
var xls = new ActiveXObject("Excel.application");
xls.Workbooks.open(XlsPath); //打开excel文件
xls.visible = false; //窗口显示模式
var sheet = 0;
try {
do {
sheet++;
var xlsheet = xls.WorkSheets(sheet);
WSH.Echo('sheet' + sheet + '存在')
}
while (xlsheet != null);
} catch (error) {
WSH.Echo('sheet' + sheet + '不存在')
}
xls.quit();
}

openXLS();

知识点

使用try _catch抛出异常,忽略对象创建失败的错误,同vbs中的On Error Resume Next

1
2
3
4
5
try {

} catch (error) {

}

vbs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
set xls = CreateObject( "Excel.Application" )
xls.Visible = false
xls.WorkBooks.Open("test.xls")
On Error Resume Next '忽略错误

sheet = 0
do
sheet = sheet + 1
If xls.WorkSheets(sheet) Is Nothing Then
WSH.Echo("sheet" & sheet & "不存在")
else
WSH.Echo("sheet" & sheet & "存在")
end if
WSH.Echo(xls.WorkSheets(sheet))
loop until IsEmpty(xls.WorkSheets(sheet))
xls.quit()

知识点

使用IsEmpty()判断xls.WorkSheets创造的对象是否存在,用法参考下面的表格,详细请转参考文献。

参考文献

vbs查找Excel中的Sheet2工作表是否存在不存在新建
js中try _catch的基本用法
VBS - 空变量判断详解