Google表格脚本-另存为PDF-从单元格获取名称

时间:2018-11-29 23:02:07

标签: pdf google-apps-script google-sheets

好吧,我有99%的经验,这要归功于许多其他有关如何执行此操作的帖子。

我在做什么? 我有一个谷歌表格。当该表格完成并且答案在相应的Google工作表中时,我还有另一个选项卡,该选项卡具有一个模板(带有一堆公式),该模板可以自动填充人员的薪水。第一个公式是名称,它不属于“表单响应”选项卡。以下脚本隐藏了所有其他工作表,将我想要的一个选项卡保存到PDF中所需的文件夹中(然后取消隐藏其他工作表)。

问题 当我将其作为测试运行时,它可以完美运行。放入该文件夹的PDF以单元格E5(这是一个公式)的输出命名,以拉出该人的名字。但是,当我将触发器设置为出现表单答案时,则一切都正确(工作表上的所有数据均正确),只是文件名显示为“是”。我很困惑为什么它是“是”。如果我随后立即运行脚本,则它是E5单元格中人的名字。

触发是否快速拉动响应?我认为可能不正确,因为PDF上的输出正确。


function topdf() {
  var foldersave=DriveApp.getFolderById('1dSOK6bBCRyEO0_fTuuMFH9sNa4wAWYW8');
  var d= new Date();


  var request = {
    "method": "GET",
    "headers":{"Authorization": "Bearer "+ScriptApp.getOAuthToken()},    
    "muteHttpExceptions": true
  };

  var key='1-e8dhOOZ5zwfeIBSTSH7yFNKgxVTxwqZvqcTNtQUQrA'; 
  var fetch='https://docs.google.com/spreadsheets/d/'+key+'/export?format=pdf&size=letter&portrait=false'
  var ss= SpreadsheetApp.getActiveSpreadsheet();
  var sheets=ss.getSheets()
  var name=ss.getRange("E5").getValue()

      sheets[0].hideSheet()
      sheets[1].hideSheet()
      sheets[2].hideSheet()
      sheets[3].hideSheet()
      sheets[4].hideSheet()
      sheets[5].hideSheet()
      sheets[6].hideSheet()

  var pdf = UrlFetchApp.fetch(fetch, request);
  pdf = pdf.getBlob().setName(name);
  var file = foldersave.createFile(pdf)

      sheets[0].showSheet()
      sheets[1].showSheet()
      sheets[2].showSheet()
      sheets[3].showSheet()
      sheets[4].showSheet()
      sheets[5].showSheet()
      sheets[6].showSheet()
}

1 个答案:

答案 0 :(得分:0)

您正在从电子表格getRange()调用ss E5,它可能是也可能不是您要获取其范围的表。 E5可能是来自另一张纸的yes。试试

ss.getSheetByName('Sheet1').getRange('E5') 
相关问题