在 google 中创建文件夹驱动更新 google 工作表中的行

Creating folders in google drive from updating rows in google sheets

我能够从 google 工作表中的现有列表创建文件夹。此列表不断增长,我希望创建文件夹(可能在时间触发器上)。我的问题是它再次创建所有文件夹并重新运行从 A1 开始的所有内容...然后出现一个问题,它会自动在 B 列上发布链接,尤其是 B1,但有时是 B5、B3...

基本上我想创建文件夹,因为列表继续增长而无需重新运行所有内容并将新的超链接放在 D 列中...

我尝试使用 while 函数来尝试检查文件夹是否已经创建,但它并没有真正帮助我,因为我最终遇到了错误。

function createAndHyperlink() {
    var ss, sh, parent, parent2, r, v, thisCell, folder
    ss = SpreadsheetApp.getActive()
    sh = ss.getSheetByName('f')
    parent = DriveApp.getFileById(ss.getId()).getParents().next();
    parent2 = DriveApp.getFolderById("1aKKrybi1uSCJPD6m_L5YXOgAV_DofKCK")
    r = sh.getRange('A1:A')
    v = r.getValues()
    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] + '")');
        }
    }
}

最后没有错误,但它不是有序的,我的意思是我非常接近我需要的东西,非常感谢您的帮助!

尝试这样的事情:

function createAndHyperlink() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('f');
  var parent=DriveApp.getFolderById("1aKKrybi1uSCJPD6m_L5YXOgAV_DofKCK")
  var vr=sh.getRange(1,1,sh.getLastRow(),1);//column 1 is values
  var v=vr.getValues();
  var dr=sh.getRange(1,3,sh.getLastRow(),1);//column 2 is hyperlinks
  var d=dr.getValues();
  var hr=sh.getRange(1,2,sh.getLastRow(),1);//column 3 is done ... Prevent old assignment from getting recreated
  var h=hr.getFormulas();
  for(var i=0;i<v.length;i++) {
    if(v[i][0] && !h[i][0] && !d[i][0]) {
      var folder=parent.createFolder(v[i][0]);
      var formula='=HYPERLINK("' + folder.getUrl() + '"; "' + v[i][0] + '")';
      h[i][0]=formula;
      d[i][0]='Done';
    }
  }
  dr.setValues(d);
  hr.setFormulas(h)
}