修改Google Apps Script:将工作表名称及ID写入SheetLinks而非HTML
修改后的Google Apps Script:将工作表名称与ID写入指定工作表
以下是修改后的脚本,会自动将当前表格中所有工作表的名称和ID写入名为SheetLinks的工作表中:
function getSheetId() { var ss = SpreadsheetApp.getActive(); // 获取目标工作表SheetLinks,不存在则自动创建 var targetSheet = ss.getSheetByName("SheetLinks") || ss.insertSheet("SheetLinks"); var allSheets = ss.getSheets(); var sheetData = []; // 添加表头 sheetData.push(["Sheet Name", "Sheet Id"]); // 遍历所有工作表,收集名称和ID for(var i = 0; i < allSheets.length; i++) { var sheet = allSheets[i]; sheetData.push([sheet.getName(), sheet.getSheetId()]); } // 清空目标工作表原有内容,批量写入新数据 targetSheet.clearContents(); targetSheet.getRange(1, 1, sheetData.length, sheetData[0].length).setValues(sheetData); // 自动调整列宽,优化显示效果 targetSheet.autoResizeColumns(1, 2); }
关键修改说明
- 移除原脚本生成HTML对话框的逻辑,替换为直接操作指定工作表的代码
- 新增判断:若
SheetLinks工作表不存在,会自动创建该工作表 - 先写入表头,再批量填充所有工作表的名称与ID数据
- 清空目标工作表原有内容,避免重复数据堆积
- 增加自动调整列宽功能,让内容展示更整洁
运行脚本后,打开SheetLinks工作表即可看到完整的工作表列表,后续可使用=HYPERLINK("#gid="&B2, A2)这类公式生成可点击的导航链接。
内容的提问来源于stack exchange,提问作者Alf
相关产品推荐
相关产品推荐

