如何使用Excel Office Script创建循环重命名工作簿所有工作表
Excel Office Script 批量重命名工作表实现方案
核心修改逻辑
- 替换原代码中获取单张工作表的逻辑,调用
workbook.getWorksheets()获取工作簿内所有工作表的数组 - 遍历数组对每个工作表执行重命名操作
场景1:按固定前缀+序号批量命名
适合需要统一命名规则、按顺序编号的场景,比如「报表_1」「报表_2」:
/** * 批量重命名所有工作表,按前缀+序号规则命名 */ function main(workbook: ExcelScript.Workbook) { // 获取工作簿内所有工作表 const allSheets = workbook.getWorksheets(); // 自定义重命名前缀,可按需修改 const namePrefix = "报表_"; // 遍历所有工作表执行重命名 allSheets.forEach((sheet, index) => { // 序号从1开始,可根据需要调整起始值 const newName = `${namePrefix}${index + 1}`; sheet.setName(newName); // 如果需要同步调整工作表顺序,可保留以下代码,不需要直接删除即可 sheet.setPosition(index); }); }
场景2:按预设名称列表顺序命名
适合已经确定所有工作表名称的场景,按预设列表顺序对应重命名:
/** * 按预设名称列表顺序批量重命名工作表 */ function main(workbook: ExcelScript.Workbook) { // 获取工作簿内所有工作表 const allSheets = workbook.getWorksheets(); // 预设名称列表,数量建议和工作表数量匹配,可自行修改内容 const nameList = ["销售数据", "库存统计", "人力成本", "财务报表", "汇总页"]; // 遍历所有工作表执行重命名 allSheets.forEach((sheet, index) => { // 跳过名称列表不存在的下标,避免下标越界报错 if (nameList[index]) { sheet.setName(nameList[index]); } }); }
注意事项
- 工作表名称不允许包含
/ \ ? * [ ]非法字符,长度不能超过31个字符 - 重命名后的名称不能重复,否则脚本执行会抛出错误
- 如果需要跳过指定工作表,可以在循环内加判断逻辑,比如
if (sheet.getName() === "固定首页") return;即可跳过该表的重命名操作 - 如果需要保留原代码里的指定表置顶逻辑,可以单独在循环外调用指定工作表的
setPosition(0)方法
内容的提问来源于stack exchange,提问作者KhalidAlsinani
相关产品推荐
相关产品推荐

