javascript 如何重命名Google电子表格(文件)并使用工作表中的值填充其内容

xbp102n0  于 2023-01-29  发布在  Java
关注(0)|答案(2)|浏览(122)

希望具有以下Google电子表格函数,该函数(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,则此folder已被共享。
1.文件夹"Target_Spreadsheet"中应无内容
1.从用户菜单"词列表"运行脚本"创建词列表-TOMS"以创建文档,以及
1.从用户菜单运行功能"重命名和填充-TOMS",仅重命名和填充第一个列出的文件。
必要时重复一遍。这就是我要做的。
谢谢。

zkure5ic

zkure5ic1#

这样就可以了,只需将代码放入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

     }

}

希望能有所帮助!

9cbw7uwe

9cbw7uwe2#

只需使用**newSheet.updateProperties({标题:“新标题”})**例如

相关问题