![](/img/trans.png)
[英]create new folder and copy google sheet, with new name to new folder
[英]Create Folder from new Google sheet Row
希望有人能帮助我。 我为包含超链接的新文件夹创建了一个 Google 脚本。 (非常新的脚本)
由于某种原因,它没有给出错误,但它也没有创建文件夹。超链接必须在 R 列中,并且文件夹的名称来自最后一行列 a,b 一起。
(是否也可以将现有模板文件夹复制到新文件夹)
function createAndHyperlink() {
var ss, sh, parent, parent2, r, v, thisCell, folder
ss = SpreadsheetApp.getActive()
sh = ss.getSheetByName('MOC Permanent')
parent = DriveApp.getFileById(ss.getId()).getParents().next();
parent2 = DriveApp.getFolderById("1vxS3FebsDLqrGGQc9kG7cE3tO9zN8Qre")
r = sh.getLastRow()
v = sh.getMaxColumns()
for (var i = 0, l = v.length; i < l; i++) {
thisCell = sh.getRange(i + 3, 2)
if (v[i][0] && !thisCell.getFormula()) {
folder = parent2.createFolder(v[i][0]);
thisCell.setFormula('=HYPERLINK("' + folder.getUrl() + '"; "' + v[i][0] + '")');
}
}
}
谷歌表格: https://docs.google.com/spreadsheets/d/12n2Cmu6OqZskD_j7YhVrU14qaQPPGnQyIoSEIw8stqE/edit?usp=sharing
希望有人可以帮助我
如果我正确理解您的帖子,您希望创建以父文件夹内A
列 + B
列上的每一行数据命名的子文件夹。 然后,获取子文件夹的每个链接,并将这些链接中的每一个添加到列 R 作为HYPERLINKS
。
推荐
我已经调整了您当前的脚本,您可以使用下面的示例脚本作为参考:
更新
//MAIN SCRIPT TO RUN
function createAndHyperlink() {
var ss, sh, lastRow, name;
ss = SpreadsheetApp.getActive();
sh = ss.getSheetByName('MOC Permanent');
lastRow = sh.getDataRange().getLastRow();
for(var row=2; row<=lastRow; row++){
name = sh.getRange(row,1).getValue()+sh.getRange(row,2).getValue();
if(sh.getRange(row,18).getValue().toString()==""){
sh.getRange(row,18).setFormula('=HYPERLINK('+"\""+createFolder(name).getUrl()+"\",\""+name+"\")");
Logger.log("Created a folder for "+"Name:\n"+name);
}else{
Logger.log("R"+row+" contains a hyperlink already!");
}
}
//THIS CODE BELOW ENSURES THE LAST ROW OF COLUMN R WAS ADDED WITH HYPERLINK BEFORE COPYING FUNCTION BEGINS
if(sh.getRange(lastRow,18).getValue().toString()!=""){
addTempFileCopy();
}
}
//FUNCTION TO CREATE SUB FOLDERS INSIDE THE PARENT FOLDER
function createFolder(folderName){
var parent, folders, firstLevelFolder, newfolder;
parent = DriveApp.getFolderById("PARENT_FOLDER_ID").getName();
folders = DriveApp.getFoldersByName(parent);
firstLevelFolder = (folders.hasNext()) ? folders.next() : DriveApp.createFolder(parent);
//CREATE UNIQUE SUBFOLDERS INSIDE OF THE PARENT FOLDER
newfolder = firstLevelFolder.createFolder(folderName);
return newfolder; //RETURNS THE LINK OF THE CREATED SUBFOLDER
}
//FUNCTION TO ADD THE TEMPLATE FILE INTO EACH CREATED SUB FOLDERS
function addTempFileCopy(){
var parent, subFolder, ss;
ss = SpreadsheetApp.getActive();
parent = DriveApp.getFolderById("PARENT_FOLDER_ID").getFolders();
while(parent.hasNext()) {
subFolder = parent.next();
var destFolder = DriveApp.getFolderById(subFolder.getId());
DriveApp.getFileById(ss.getId()).makeCopy(subFolder.getName()+" - Template file copy", destFolder);
Logger.log("Template file name: "+ss.getName()+"\nAdded to folder: "+subFolder.getName());
}
}
样品表
结果
运行脚本后,在COLUMN R
上添加了HYPERLINKS
:
以下是在父文件夹内的 Google Drive 上创建的子文件夹:
执行日志结果:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.