簡體   English   中英

如何重命名 Google 電子表格(文件)並使用工作表中的值填充其內容

[英]How to rename Google spreadsheets (files) and populate their contents with values from a sheet

希望有以下 Google 電子表格 function,它 (1) 重命名電子表格(目標文件)和 (2) 根據另一個電子表格(源文件)中包含的值填充其中一個工作表,從第二行開始循環直到列出的所有電子表格都已重命名和填充。

重命名目標文件所需的所有值都在單元格區域 D2:D 中。

填充目標文件所需的所有值都在單元格范圍 A2:D 中

目標文件的所有 ID 都在單元格區域 G2:G 中。

第二行和最后一個包含數據的行之間(包括第二行)和最后一個包含數據的行之間沒有空行,並且所有具有該范圍內數據的行都將被使用。 每列(A、B、C、D、G)具有相同數量的包含數據的行。

包含要使用的條目的行數的值在單元格范圍 E1 中,如果它有任何用處(未在此函數中使用)。

function rnmCpyRngTo() {
  //rename target spreadsheet and populate range
  //in target sheet from values in source spreadsheet
     //get source sheet in source spreadsheet
     var ssss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("CopyToWrdLists");
     //get source cell range containing value of name to be given to target spreadsheet            
     var scrvn = ssss.getRange("D2").getValue();
     //get source cell range containing values to copy to target sheet cell range
     var scrvr = ssss.getRange("A2:D2").getValues();
     //get source cell range containing values of target spreadsheet ID
     var scrvid = ssss.getRange("G2").getValue();  
     //get target spreadsheet ID
     var tssid = DriveApp.getFileById(scrvid); 
     //get target sheet
     var tss = SpreadsheetApp.openById(scrvid).getSheetByName("Wordlist"); 
     //rename target spreadsheet
     tssid.setName(scrvn); 
     //copy values to target sheet cell range
     tss.getRange(1, 1, scrvr.length, scrvr[0].length).setValues(scrvr);
}

問題15616530似乎接近預期的結果,但無法對其進行修改以適應。 幫助將不勝感激。

添加:

     //get source cell range containing values of target spreadsheet ID
     var scrvid = ssss.getRange("G2").getValues();

源表已在此處共享,以便任何知道鏈接的人都可以編輯。

假設您已登錄 Google,此文件夾已共享。

  1. “Target_Spreadsheet”文件夾中應該沒有任何內容
  2. 從用戶菜單“Wordlists”運行腳本“Create wordlists - TOMS”以創建文檔,以及
  3. 從用戶菜單運行 function“重命名和填充 - TOMS”以僅重命名和填充第一個列出的文件。

根據需要重復。 這就是我要做的。

謝謝。

這應該可以解決問題,只需將代碼放入for循環中即可:

function rnmCpyRngTo() {
  //rename target spreadsheet and populate range
  //in target sheet from values in source spreadsheet
     //get source sheet in source spreadsheet
     var ssss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("CopyToWrdLists");
     //get source cell range containing value of name to be given to target spreadsheet 
     var data = ssss.getDataRange().getValues()        // All the data in sheet, since there not empty rows. 
     Logger.log(data)
     var dataLength = data[0][4]                       // Get number of rows from cell E1, can use data.length instead
     for (var i = 1; i <= dataLength ; i++){           // If you rather use data.length change the condition to i < data.length
       var scrvn = data[i][3]                    // Get Rename value
       var scrvr = [] 
       scrvr[0] = data[i].slice(0, 4)            // Get Copy Values
       var scrvid = data[i][6]                   // Get of SpdSheet
       var tss = SpreadsheetApp.openById(scrvid) // Get Spreadsheet
       tss.rename(scrvn)                         // Rename Spreadsheet
       Logger.log(scrvr)
       tss.getSheetByName("Wordlist").getRange(1, 1, scrvr.length,scrvr[0].length).setValues(scrvr)  // Set Copy Values to the sheet

     }

}

希望能幫助到你!

只需使用newSheet.updateProperties({title: "new title"})例如

暫無
暫無

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

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