Google Apps Script如何从script2获取FolderID给script1按年月存PDF
你需要的修改非常简单,因为两个函数在同一个Apps Script项目中,直接在script1中调用script2()即可拿到返回的文件夹ID,同时修正你原代码中变量声明顺序错误的问题,修改后的完整代码如下:
function script1() { var source = SpreadsheetApp.getActiveSpreadsheet(); var ticketnum = source.getSheetByName("Ticket").getRange('J1').getValue(); // 修正变量声明顺序,先定义spreadsheetId再使用 var spreadsheetId = SpreadsheetApp.getActiveSpreadsheet().getId(); var spreadsheet = spreadsheetId ? SpreadsheetApp.openById(spreadsheetId) : SpreadsheetApp.getActiveSpreadsheet(); // 直接调用script2获取返回的文件夹ID var folderID = script2(); var folder = DriveApp.getFolderById(folderID); var token = ScriptApp.getOAuthToken(); var ssID = spreadsheetId; var url = "https://docs.google.com/spreadsheets/d/"+ssID+"/export"+ "?format=pdf&"+ '&portrait=true' + // 方向,false为横向 '&scale=4' + '&top_margin=0.25' + // 四个边距必须全部设置 '&bottom_margin=0.25' + '&left_margin=0.05' + '&right_margin=0.05' + '&horizontal_alignment=CENTER' + // 对齐方式:LEFT/CENTER/RIGHT '&gid=504778977'; var response = UrlFetchApp.fetch(url, {headers: {'Authorization': 'Bearer ' + token}}); var pdf = response.getBlob().setName(ticketnum +'.PDF'); folder.createFile(pdf) } function script2() { var formattedDate = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd"); var folderYearDate = Utilities.formatDate(new Date(), "GMT", "yyyy"); var folderMonthDate = Utilities.formatDate(new Date(), "GMT", "MMMM"); var parent = DriveApp.getFolderByIdAndResourceKey('0B1XvUmuAadtaVmxweF95cWl4Rkk','resourcekey=0-oKRO1w6SHP1YHfuO0JxMjA').getFoldersByName("Mountain Metis") var yearExist = parent.next(); var yearFolders = yearExist.getFoldersByName(folderYearDate); if(yearFolders.hasNext()){ var yearFolder = yearFolders.next() Logger.log('已存在对应年份文件夹') } else { var yearFolder = yearExist.createFolder(folderYearDate) Logger.log('不存在对应年份文件夹,已创建') } var monthFolders = yearFolder.getFoldersByName(folderMonthDate); if(monthFolders.hasNext()){ var monthFolder = monthFolders.next() Logger.log('已存在对应月份文件夹') } else { var monthFolder = yearFolder.createFolder(folderMonthDate); Logger.log('不存在对应月份文件夹,已创建') } var FID = monthFolder.getId() Logger.log(FID) return FID }
修改后直接运行script1即可,script2会自动完成年月文件夹的判断、创建操作,返回对应ID给script1使用,PDF会自动存入匹配的年月文件夹中。
内容的提问来源于stack exchange,提问作者Yvan L
相关产品推荐
相关产品推荐

