Google apps script 将数据从特定单元格复制到不同文件夹中具有不同格式的不同工作表中

Google apps script 将数据从特定单元格复制到不同文件夹中具有不同格式的不同工作表中,google-apps-script,Google Apps Script,在一个google工作表中,我想运行一个脚本(通过脚本附加按钮),将另一个不同的工作表复制到另一个目标文件夹中,同时根据第一个工作表中的单元格值命名新文件。谁能给我指出正确的方向吗? 以下是我目前掌握的情况: function onOpen(e) { var jobTitle = SpreadsheetApp.getActiveSpreadsheet().getName(); SpreadsheetApp.getActiveSpreadsheet

在一个google工作表中,我想运行一个脚本(通过脚本附加按钮),将另一个不同的工作表复制到另一个目标文件夹中,同时根据第一个工作表中的单元格值命名新文件。谁能给我指出正确的方向吗? 以下是我目前掌握的情况:

  function onOpen(e) {                   
  var jobTitle = SpreadsheetApp.getActiveSpreadsheet().getName();
  SpreadsheetApp.getActiveSpreadsheet().getRange("B3").setValue(jobTitle);
   }
  function CreateManFile8() {           
  var copyMan = DriveApp.getFileById("Source ID");                                  
  var toFolder = DriveApp.getFolderById("Destination ID");                                                   
  copyMan.makeCopy(toFolder);
   }
第一个函数很好,因为它允许我复制第一个电子表格模板,命名它,然后,在onOpen中,文件名进入输入表的一个适当单元格,通过标准表引用公式等填充整个电子表格。 第二个函数只是复制“Man.”模板(从第一个“Sales”模板内部),并将其放入适当的文件夹中,而不更改名称

我需要一个方法来命名这个人。根据销售电子表格模板内B3(或任何指定单元格)中的值创建模板。我将脚本附加到销售模板中的一个按钮上,但它只是复制第二个模板并将其命名为“Source ID”;不是B3的值

议题背景:(适用于感兴趣者)

我在工作中管理的每个项目都需要包含在“销售电子表格”模板中的销售流程,该模板由几个相互链接的表组成,管理流程包含在由几个其他相互链接(使用标准公式)表组成的“管理电子表格”模板中。最终,这两个电子表格模板将被复制并用于每个新项目

首先,每个销售潜在客户都参与销售流程,这些流程导致在整个销售流程中复制、重命名销售电子表格模板,并使用相关客户和销售数据重复填充该模板。然后,在某一点上,签订了涉及管理流程的合同,因此,“管理电子表格”模板也被复制、命名并用于项目

这样做的目的是在手动命名销售模板并使用销售过程中收集的信息填充该模板之后,从“销售模板”中复制“Man.Template”

在任何项目的管理阶段收集、分析和报告的大多数数据都不同于协商销售流程所需的数据,但有一点多余的数据需要通过编程从每个项目的销售模板转换到管理模板

因此,我来到stack overflow社区寻求指导。任何和所有认真、以服务为导向的人提供帮助,我们都将不胜感激


我知道你们中的大多数人都比我聪明。提醒也无济于事。因此,任何人如果真的因为喜欢编码并想分享而想帮助一个花花公子,我都迫不及待地想听到你的消息。

这只是一个示例,你必须根据自己的目的对其进行修改,这会将文件从任何文件夹复制到另一个具有新名称的文件夹:

function CreateFile8() {
  //This assumes the folders are unique, so I don't use ID
  var folders=DriveApp.getFoldersByName('Sistem Folder'); //myfolder = 'my drive' > 'sistem folder'

  if (folders.hasNext())
  {
    var mySrcFolder = folders.next();
    var Destfolders = mySrcFolder.getFoldersByName('Test'); //myDestfolder = 'my drive' > 'sistem folder' > 'Test'
    var files=mySrcFolder.getFilesByName('Jojo'); //file jojo will be copied (only if not exist), and Jojo is as template
    if (files.hasNext() && Destfolders.hasNext())
    {
      var DestFolder = Destfolders.next();
      var myFile = files.next();
      var Destfiles=DestFolder.getFilesByName('Jobe'); //file jojo will be copied (only if not exist in dest), and Jojo is as template
      if (Destfiles.hasNext()==false)
      myFile.makeCopy('Jobe', DestFolder); //And jobe is extracted from your sheet, I don't adopt here to extract from your sheet
    }
  }  
}

如果我理解正确,您需要一个函数,该函数在指定的文件夹中创建电子表格的副本,并使用B3单元格的值作为名称

您可以尝试对函数进行以下修改:

  function CreateManFile8() {           
     var copyMan = DriveApp.getFileById("spreadsheet Id").getId();    
     var toFolder = DriveApp.getFolderById("folder Id");       

     var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
     var sheetName = sheet.getRange('B3').getDisplayValue();

     DriveApp.getFileById(copyMan).makeCopy(sheetName, toFolder);  

}

您可以查看和的文档以了解更多信息。

欢迎来到StackOverflow。您有什么问题吗?使用范围数组并通过该数组将值设置到电子表格中的任何表格,请尝试创建您的脚本并通知我们问题。伙计,您很快!我会发布到目前为止的内容,以便您认真对待我但是,在任何地方都没有人能解决这个问题。我试图清楚地说明,我想编写一个函数,将不同的电子表格复制到另一个指定文件夹,但根据第一个文件夹中的值命名。电子表格的格式不同,我只想知道如何从源文件中获取值,并将其放入特定文件夹中另一个电子表格模板中的单元格。您的问题似乎与的重复。感谢您查看。上面的代码并未解决我的问题。也许我需要重申我的问题,因为我似乎没有很好地传达问题或目标。我们的想法是让“人”。手动命名销售模板后,从“销售模板”中复制模板。因此,我们有两个电子表格作为模板,每个表格由几个选项卡(表格)组成;让我们称他们为“销售档案空白”和“男人”。文件空白'。“销售文件空白”内有一个按钮,用于复制“人”。文件-BLANK,并将其命名为与“Sale File BLANK”的文件名相同的文件名,然后将其发送到另一个文件夹。要澄清的是:“Sales File BLANK”是一个电子表格模板,有许多单独的表格(选项卡)。和“Man”。“文件空白”也是一个电子表格模板,有许多单独的工作表(选项卡)!对从SS#1内部,我想复制另一个模板SS#2,并将复制的模板(SS#2)命名为与SS#1中的值相同的名称。我们有两个不同的模板SS#1和SS#2。从#1内部,我们希望复制并命名SS#2,然后将重命名的#2 SS保存到一个指定文件夹中,该文件夹包含所有其他SS#2副本。Jes!!!!它起作用了!非常感谢。老兄,我离你太近了,但我需要你,谢谢你!!!!!!很高兴它能做到!如果您能接受我的解决方案,我将不胜感激,这样其他人就可以在不阅读评论的情况下看到它的效果。干杯我很难将指定的单元从SS1复制到SS2中的不同单元。除了标题之外。我还缺少什么?您应该使用从Sheet1获取单元格,然后再次将其复制到Sheet2。如果你有更多的疑问,不要犹豫,打开一个新的帖子,因为在评论中写一个解决方案可能会让人困惑。