ShtUtils

命名空间

ShtUtils

说明:
  • 工作表函数工具库,增强工作表操作。
    备注:这里面工作表作为参数都可以传表名或者工作表对象
作者:
  • 郑广学 2023.9.10 微信公众号EXCEL880 官网vbayyds.com

函数:

z安全已使用区域(工作表) → {Range}

说明:
  • 这个函数用于获取工作表从A1开始的可使用区域, 并返回结果单元格区域
别名:
  • safeUsedRange
参数列表:
参数名称 参数类型 备注
工作表 Worksheet 要获取安全已使用区域的工作表
返回值:
返回工作表从A1开始的可使用单元格区域
Type
Range
例子
var usedRange = ShtUtils.z安全已使用区域("多表");  //从A1开始的可使用区域
//也可以这样写: var usedRange = ShtUtils.z安全已使用区域(Sheets("多表")); //从A1开始的可使用区域
console.log(usedRange.Address());
//输出结果
$A$1:$L$17

safeUsedRange(工作表) → {Range}

说明:
  • 这个函数用于获取工作表从A1开始的可使用区域, 并返回结果单元格区域
别名:
  • z安全已使用区域
参数列表:
参数名称 参数类型 备注
工作表 Worksheet 要获取安全已使用区域的工作表
返回值:
返回工作表从A1开始的可使用单元格区域
Type
Range
例子
var usedRange = ShtUtils.safeUsedRange("多表");  //从A1开始的可使用区域
//也可以这样写: var usedRange = ShtUtils.safeUsedRange(Sheets("多表")); //从A1开始的可使用区域
console.log(usedRange.Address());
//输出结果
$A$1:$L$17

z包含表名(表名, 表集合opt) → {boolean}

说明:
  • 这个函数用于检查表集合中是否包含指定表名,可以用*通配符, 返回true或false
别名:
  • includesSht
参数列表:
参数名称 参数类型 属性 默认值 备注
表名 string 要检查的表名, 可以用? * 通配符
表集合 Object <optional>
Sheets 要检查的表集合对象, 默认为 Sheets
返回值:
如果表集合中包含指定表名,则返回true;否则返回false
Type
boolean
例子
var includesSheet = ShtUtils.z包含表名('多*');
console.log(includesSheet); // 是否包含表名
//输出结果
true

includesSht(表名, 表集合opt) → {boolean}

说明:
  • 这个函数用于检查表集合中是否包含指定表名,可以用*通配符, 返回true或false
别名:
  • z包含表名
参数列表:
参数名称 参数类型 属性 默认值 备注
表名 string 要检查的表名, 可以用? * 通配符
表集合 Object <optional>
Sheets 要检查的表集合对象, 默认为 Sheets
返回值:
如果表集合中包含指定表名,则返回true;否则返回false
Type
boolean
例子
var includesSheet = ShtUtils.includesSht('多*');
console.log(includesSheet); // 是否包含表名
//输出结果
true

z表名筛选(表名, 表集合opt) → {Array}

说明:
  • 这个函数用于筛选表集合中包含指定表名的表, 可以用? *通配符, 返回包含筛选结果的表名的一维数组
别名:
  • filterShts
参数列表:
参数名称 参数类型 属性 默认值 备注
表名 string 要筛选的表名, 可以用? *通配符
表集合 Sheets <optional>
Sheets 要筛选的表集合对象, 默认为 Sheets
返回值:
返回包含筛选结果的表名一维数组
Type
Array
例子
//示例1
var filteredSheets = ShtUtils.z表名筛选('多*');
logjson(filteredSheets,0); // 包含筛选结果的数组
//输出结果
["多表 (3)","多表","多表 (2)","多条件筛选"]
 //示例2
 logjson(ShtUtils.z表名筛选('?月'),0);
 ["1月","2月"]

filterShts(表名, 表集合opt) → {Array}

说明:
  • 这个函数用于筛选表集合中包含指定表名的表, 可以用? *通配符, 返回包含筛选结果的表名的一维数组
别名:
  • z表名筛选
参数列表:
参数名称 参数类型 属性 默认值 备注
表名 string 要筛选的表名, 可以用? *通配符
表集合 Sheets <optional>
Sheets 要筛选的表集合对象, 默认为 Sheets
返回值:
返回包含筛选结果的表名一维数组
Type
Array
例子
//示例1
var filteredSheets = ShtUtils.filterShts('多*');
logjson(filteredSheets,0); // 包含筛选结果的数组
//输出结果
["多表 (3)","多表","多表 (2)","多条件筛选"]
 //示例2
 logjson(ShtUtils.filterShts('?月'),0);
 ["1月","2月"]

z查找表(sht, shtsopt) → {Sheet}

说明:
  • 这个函数用于在表集合中查找指定的表, 并返回查找到的表对象
别名:
  • findSht
参数列表:
参数名称 参数类型 属性 默认值 备注
sht string 要查找的表名
shts Object <optional>
Sheets 要查找的表集合对象, 默认为 Sheets
返回值:
返回查找到的表对象
Type
Sheet
例子
var findSht = ShtUtils.z查找表('1月');  // 查找到的表对象
console.log(findSht.Name); 
//输出结果
1月

findSht(sht, shtsopt) → {Sheet}

说明:
  • 这个函数用于在表集合中查找指定的表, 并返回查找到的表对象
别名:
  • z查找表
参数列表:
参数名称 参数类型 属性 默认值 备注
sht string 要查找的表名
shts Object <optional>
Sheets 要查找的表集合对象, 默认为 Sheets
返回值:
返回查找到的表对象
Type
Sheet
例子
var findSht = ShtUtils.findSht('1月');  // 查找到的表对象
console.log(findSht.Name); 
//输出结果
1月

z判断空表(工作表) → {boolean}

说明:
  • 这个函数用于判断工作表是否为空表, 并返回true或false
别名:
  • isEmptySht
参数列表:
参数名称 参数类型 备注
工作表 Worksheet 要判断的工作表
返回值:
如果工作表为空表,则返回true;否则返回false
Type
boolean
例子
var isEmpty = ShtUtils.z判断空表('Sheet1');
//也可以这样写: var isEmpty = ShtUtils.z判断空表(Sheets('Sheet1'));
console.log(isEmpty); // 是否为空表
//输出结果
true

isEmptySht(工作表) → {boolean}

说明:
  • 这个函数用于判断工作表是否为空表, 并返回true或false
别名:
  • z判断空表
参数列表:
参数名称 参数类型 备注
工作表 Worksheet 要判断的工作表
返回值:
如果工作表为空表,则返回true;否则返回false
Type
boolean
例子
var isEmpty = ShtUtils.isEmptySht('Sheet1');
//也可以这样写: var isEmpty = ShtUtils.isEmptySht(Sheets('Sheet1'));
console.log(isEmpty); // 是否为空表
//输出结果
true

z删除表(工作表) → {undefined}

说明:
  • 这个函数用于删除指定的工作表
别名:
  • deleteSht
参数列表:
参数名称 参数类型 备注
工作表 Worksheet 要删除的工作表
返回值:
无返回值
Type
undefined
例子
ShtUtils.z删除表('Sheet1');
//也可以这样写: ShtUtils.z删除表(Sheets('Sheet1'));

deleteSht(sht) → {undefined}

说明:
  • 这个函数用于删除指定的工作表
别名:
  • z删除表
参数列表:
参数名称 参数类型 备注
sht Worksheet 要删除的工作表
返回值:
无返回值
Type
undefined
例子
ShtUtils.deleteSht('Sheet1');
//也可以这样写: ShtUtils.deleteSht(Sheets('Sheet1'));

z按代码名称(表名, 表集合opt) → {Worksheet}

说明:
  • 这个函数用于按照代码名称查找表集合中的表, 返回结果工作表
别名:
  • byCodeName
参数列表:
参数名称 参数类型 属性 默认值 备注
表名 string 要查找的代码名称
表集合 Object <optional>
Sheets 要查找的表集合对象, 默认: Sheets
返回值:
返回查找到的表对象
Type
Worksheet
例子
//示例1   可以使用查看工作表的代码名称:  console.log(Sheets("1月").CodeName); 
var sheetRange = ShtUtils.z按代码名称("Sheet34");
console.log(sheetRange.Name); // 查找到的表对象
//输出结果
1月

byCodeName(表名, 表集合opt) → {Worksheet}

说明:
  • 这个函数用于按照代码名称查找表集合中的表, 返回结果工作表
别名:
  • z按代码名称
参数列表:
参数名称 参数类型 属性 默认值 备注
表名 string 要查找的代码名称
表集合 Object <optional>
Sheets 要查找的表集合对象, 默认: Sheets
返回值:
返回查找到的表对象
Type
Worksheet
例子
//示例1   可以使用查看工作表的代码名称:  console.log(Sheets("1月").CodeName); 
var sheetRange = ShtUtils.byCodeName("Sheet34");
console.log(sheetRange.Name); // 查找到的表对象
//输出结果
1月

z隐藏表(表集合) → {undefined}

说明:
  • 这个函数用于隐藏表集合中的表 不传参数则隐藏当前表外所有表
别名:
  • hideSheets
参数列表:
参数名称 参数类型 备注
表集合 Object 要隐藏的表集合对象
返回值:
无返回值
Type
undefined
例子
ShtUtils.z隐藏表([Sheets("1月"),Sheets("2月")]);

hideSheets(shts) → {undefined}

说明:
  • 这个函数用于隐藏表集合中的表 不传参数则隐藏当前表外所有表
别名:
  • z隐藏表
参数列表:
参数名称 参数类型 备注
shts Object 要隐藏的表集合对象
返回值:
无返回值
Type
undefined
例子
ShtUtils.hideSheets([Sheets("1月"),Sheets("2月")]);

z显示表(表集合) → {undefined}

说明:
  • 这个函数用于显示表集合中的表 不传参数则显示所有表
别名:
  • showSheets
参数列表:
参数名称 参数类型 备注
表集合 Array 表名数组
返回值:
无返回值
Type
undefined
例子
ShtUtils.z显示表([Sheets("1月"),Sheets("2月")]);

showSheets(表集合) → {undefined}

说明:
  • 这个函数用于显示表集合中的表 不传参数则显示所有表
别名:
  • z显示表
参数列表:
参数名称 参数类型 备注
表集合 Array 表名数组
返回值:
无返回值
Type
undefined
例子
ShtUtils.showSheets([Sheets("1月"),Sheets("2月")]);

z激活表(工作表) → {undefined}

说明:
  • 这个函数用于根据工作表名称激活工作表函数
别名:
  • shtActivate
参数列表:
参数名称 参数类型 备注
工作表 Worksheet 待激活的工作表
返回值:
无返回值
Type
undefined
例子
ShtUtils.z激活表(Sheets("1月"));

shtActivate(工作表) → {undefined}

说明:
  • 这个函数用于激活工作表函数
别名:
  • z激活表
参数列表:
参数名称 参数类型 备注
工作表 Worksheet 待激活的工作表
返回值:
无返回值
Type
undefined
例子
ShtUtils.shtActivate(Sheets("1月"));

z最后一行(工作表) → {Number}

说明:
  • 这个函数用于返回指定工作表的最后一行的行号
别名:
  • lastRow
参数列表:
参数名称 参数类型 备注
工作表 Worksheet 要返回最后行号的工作表
返回值:
最后一行的行号
Type
Number
例子
var n=ShtUtils.z最后一行(Sheets("1月"));  //工作表1月的数据最后一行
console.log(n);
//输出结果
31

lastRow(工作表) → {Number}

说明:
  • 这个函数用于返回指定工作表的最后一行的行号
别名:
  • z最后一行
参数列表:
参数名称 参数类型 备注
工作表 Worksheet 要返回最后行号的工作表
返回值:
最后一行的行号
Type
Number
例子
var n=ShtUtils.lastRow(Sheets("1月"));  //工作表1月的数据最后一行
console.log(n);
//输出结果
31

z纠正表名(工作表名) → {String}

说明:
  • 这个函数用于批量创建, 拆分,另存表时, 将工作表名字中包含的违规字符替换为 _
    (违规字符: 超过31个, 字符: :\/?*[或] 第一或最后一个字符用单引号)
别名:
  • correctShtName
参数列表:
参数名称 参数类型 备注
工作表名 String 待检测的工作表名
返回值:
正确表名
Type
String
例子
ShtUtils.z纠正表名("1[]2")
//输出结果
1__2

correctShtName(工作表名) → {String}

说明:
  • 这个函数用于批量创建, 拆分,另存表时, 将工作表名字中包含的违规字符替换为 _
    (违规字符: 超过31个, 字符: :\/?*[或] 第一或最后一个字符用单引号)
别名:
  • z纠正表名
参数列表:
参数名称 参数类型 备注
工作表名 String 待检测的工作表名
返回值:
正确表名
Type
String
例子
ShtUtils.correctShtName("1[]2")
//输出结果
1__2

z工作表排序(shts, sortFn) → {undefined}

说明:
  • 这个函数用于对指定的工作表数组进行排序
别名:
  • sheetsSort
参数列表:
参数名称 参数类型 备注
shts Array 要排序的工作表数组
sortFn function 用于排序工作表函数或者表名数组(自定义序列)
返回值:
- 不返回任何内容
Type
undefined
例子
ShtUtils.z工作表排序(Sheets(["产品11","产品1","产品2","产品5","产品6"]),(a,b)=>val($.mid(a,3))-val($.mid(b,3))); //传Sheets集合
ShtUtils.z工作表排序(Sheets(['Sheet1','Sheet2','Sheet3'])); 
ShtUtils.z工作表排序(Sheets(['工程','销售','财务']),['销售','财务','工程']); //自定义序列
ShtUtils.z工作表排序(Sheets,(x,y)=>val(x.match(/\d+/))-val(y.match(/\d+/))); //所有表集合
ShtUtils.z工作表排序(Sheets($.filterShts('*产品*')),(x,y)=>val(x.match(/\d+/))-val(y.match(/\d+/))); //筛选表后, 再提取数字按数字排序

sheetsSort(shts, sortFn) → {undefined}

说明:
  • 这个函数用于对指定的工作表数组进行排序
别名:
  • z工作表排序
参数列表:
参数名称 参数类型 备注
shts Array 要排序的工作表数组
sortFn function 用于排序工作表函数或者表名数组(自定义序列)
返回值:
- 不返回任何内容
Type
undefined
例子
ShtUtils.sheetsSort(Sheets(["产品11","产品1","产品2","产品5","产品6"]),(a,b)=>val($.mid(a,3))-val($.mid(b,3))); //传Sheets集合
ShtUtils.sheetsSort(Sheets(['Sheet1','Sheet2','Sheet3'])); 
ShtUtils.sheetsSort(Sheets(['工程','销售','财务']),['销售','财务','工程']); //自定义序列
ShtUtils.sheetsSort(Sheets,(x,y)=>val(x.match(/\d+/))-val(y.match(/\d+/))); //所有表集合
ShtUtils.sheetsSort(Sheets($.filterShts('*产品*')),(x,y)=>val(x.match(/\d+/))-val(y.match(/\d+/))); //筛选表后, 再提取数字按数字排序