如何用Google脚本复制表格模板到文件夹并写入新副本C3单元格?
如何在复制Google表格模板后激活并修改新副本的单元格?
嘿,这个问题很好解决!当你用makeCopy()复制模板后,这个方法会直接返回新创建的文件对象——你只需要用这个对象获取ID,就能打开新副本并修改单元格了。
下面是完整的可运行脚本,我把关键步骤标出来了:
function newprojectdocuments(){ // 激活当前表格获取新项目ID var trackerss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = trackerss.getSheetByName('AutoTracker'); var range = sheet.getRange('F1:F1'); var foldername = range.getValues(); if( foldername.toString().length === 7 ){ // 获取模板表格以创建副本 var SStemplate = "url"; // 替换成你的模板URL var SStocopy = SpreadsheetApp.openByUrl(SStemplate); // 设置新项目表格的目标文件夹 var SSdestFolder = DriveApp.getFolderById("ID"); // 替换成目标文件夹ID // 将模板复制到目标文件夹,这里newFile就是新副本的文件对象 var newFile = DriveApp.getFileById(SStocopy.getId()).makeCopy(foldername, SSdestFolder); // 打开新创建的表格副本 var ss = SpreadsheetApp.openById(newFile.getId()); // 定位到目标工作表 var targetSheet = ss.getSheetByName('Overview'); // 在C3单元格写入目标值(新项目ID) targetSheet.getRange("C3").setValue(foldername); // 在交易文档文件夹中创建新文件夹 var dealfolder=DriveApp.getFolderById("ID"); // 替换成交易文件夹ID var newfolder=dealfolder.createFolder(foldername) // 提示创建成功 Browser.msgBox( "Project " + foldername + " folder & spreadsheet created! Refresh the tracker to display." ) } else { // 校验项目ID格式 Browser.msgBox('Project ID must be 7 digits: YYMMDDN format') } }
关键步骤说明:
- 获取新副本对象:
makeCopy()返回的newFile就是你的新表格副本,通过它可以拿到唯一ID - 打开新副本:用
SpreadsheetApp.openById(newFile.getId())激活新表格,就像操作普通表格一样 - 修改单元格:定位到目标工作表后,用
getRange().setValue()就能写入你需要的内容
内容的提问来源于stack exchange,提问作者Arlen Spexarth
相关产品推荐
相关产品推荐

