You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Google Apps Script列出Google Form的发布URL

批量获取Google Drive中表单的发布URL并写入表格

你当前的代码已经能筛选出指定文件夹里的所有Google表单,但获取发布URL的方式有误——FormApp.getActiveForm()只能获取当前脚本绑定的表单,无法遍历Drive里的其他表单。以下是修改后的完整代码,可同时获取表单名称、ID、大小和发布URL:

function listFormURL(){
  var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('MAPPING FORM');
  var folder = DriveApp.getFolderById('1Oj-o5jxxxxxxxxxxxxxxxxxxxJ3fcA'); 
  var list = [];
  // 修改表头,增加URL列
  list.push(['Name','ID','Size','URL']);    

  var files = folder.getFilesByType(MimeType.GOOGLE_FORMS);
  while (files.hasNext()){
    var file = files.next();
    // 通过表单ID打开对应的Form对象
    var form = FormApp.openById(file.getId());
    // 获取发布URL,若未发布则返回"未发布"
    var formUrl = form.getPublishedUrl() || "未发布";
    var row = [];
    row.push(file.getName(), file.getId(), file.getSize(), formUrl);
    list.push(row);
  }
  // 写入数据时匹配4列的宽度
  sh.getRange(1, 1, list.length, list[0].length).setValues(list);
}

关键修改说明:

  • 调整表头数组,新增URL列,确保后续数据列数匹配
  • 移除了无效的FormApp.getActiveForm()调用,改为在循环中通过FormApp.openById(file.getId())逐个打开Drive中的表单文件
  • 调用getPublishedUrl()获取发布链接,用|| "未发布"处理表单未发布的情况,避免表格出现空值
  • 将获取到的formUrl加入每行数据,同步写入表格

内容的提问来源于stack exchange,提问作者PSAB Plalangan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 05:05:06