如何将谷歌表格工作表的GID从控制台输出改为写入Sheet2?
修改代码将谷歌表格所有工作表GID写入当前表格的Sheet2
你可以按以下方式修改原函数,实现将所有工作表的GID写入当前活动表格的Sheet2中:
function GetTabs() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var tabs = []; var sheets = ss.getSheets(); // 遍历所有工作表,收集GID for (var i = 0; i < sheets.length; i++) { tabs.push([sheets[i].getSheetId()]); } // 获取Sheet2并写入GID数据 var targetSheet = ss.getSheetByName("Sheet2"); if (targetSheet) { // 清空Sheet2原有内容(可选操作,按需保留) targetSheet.clearContents(); // 从A1单元格开始写入数据 targetSheet.getRange(1, 1, tabs.length, 1).setValues(tabs); } else { // 如果Sheet2不存在,创建新工作表 targetSheet = ss.insertSheet("Sheet2"); targetSheet.getRange(1, 1, tabs.length, 1).setValues(tabs); } }
关键改动说明:
- 将原代码中
openById改为getActiveSpreadsheet(),确保操作的是当前打开的活动表格 - 新增了获取目标工作表
Sheet2的逻辑,同时处理了Sheet2不存在的情况(自动创建) - 使用
setValues方法将收集到的GID数组批量写入Sheet2,效率比逐行写入更高 - 可选添加了
clearContents方法,用于清空Sheet2原有内容,避免数据重叠
内容的提问来源于stack exchange,提问作者RedFalcoN
相关产品推荐
相关产品推荐

