簡體   English   中英

基於模板創建新的 Google Sheet 並將數據從 Master Sheet 導出到新創建的表

[英]Creating a new Google Sheet based off a template and exporting data from Master Sheet to newly created sheets

我是我大學的一個委員會的一員,該委員會通過閱讀不同的請求並相應地分配資金來分配 90,000 美元的資金。

我們通過填寫一份 NOL 表格來完成分配,其中包含有關每個不同類別分配多少資金的信息。

所有這些信息都在一個母版表中。 我正在編寫一個腳本,該腳本從母版上的 250 行中獲取數據,並將其轉換為 250 個獨特的 Google 表格,其中包含從母版導入的信息,同時初始化每個谷歌表格以遵循特定模板。

在將新工作表的鏈接存儲在我的主文檔上之前,我被困在創建新工作表的部分,以將我的模板復制到新工作表上,更新新工作表上的值。

這是 Google Apps 腳本能夠做到的嗎? 我將粘貼我的(不完整的)代碼。 目前鏈接被粘貼到主表上,但模板當前未導入,我鏈接到一張空白表(當它應該包含模板時)

另外,我的問題有更簡單的解決方案嗎? 也許我不需要創建新工作表,但我可以添加現有工作表(我會這樣做,但這將是 250 張額外工作表)

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Justin's Analysis"); 
  var range = sheet.getRange("A1:P23");
  var nolSheet = ss.getSheetByName(['NOL']);
  var nolTemplateRange = nolSheet.getRange("A1:J33")
  var data = range.getValues();
  //console.log(sheet.getMaxRows())
  // data[2][15] = "Test"
  // range.setValues(data)
  for (i = 1; i<= 22; i++){// loop through NOL creation process through all rows of data. 
    var clubName = data[i][1];
    var input = "NOL" + i + clubName;
    console.log(input)
    var ssNew = SpreadsheetApp.create(input);
    var sheet = SpreadsheetApp.getActiveSheet();
    // var nolSheet = ss.getSheetByName(['NOL']);
    // let nolTemplateRange = nolSheet.getRange("A1: J33")
    //var rangeToCopy = sheet.getRange(1, 1, sheet.getMaxRows(), 5);
    nolTemplateRange.copyTo(sheet.getRange("A1:J33")); 

    
    nolSheet.copyTo(ssNew) // copies NOL into new spreadsheet
    
    //Copy Registration 
    let registration = data[i][9];
    let subscription = data[i][10];
    let incentive = data[i][11];
    let food = data[i][12];
    let other = data[i][13];
    let total = data[i][14];
    //Copy Subscription
    //Copy Incentives
    //Copy Food
    //Copy Supplies/Other

    // grab Copy of NOL into new created sheet. 
    // Input values from data into new sheet 
    // input new sheets URL into NOL row. 
    data[i][15] = ssNew.getUrl(); 

  }
  range.setValues(data)
  
}

問題是您無法使用復制功能將數據從一個谷歌工作表復制到另一個谷歌工作表。 在第二張紙上設置值之前,您需要在第一張紙上使用 getValues 函數。 我從這個 StackOverflow 問題中找到了答案: 使用腳本將 google 電子表格列從一個電子表格復制到另一個電子表格

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM