You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 16:06:03