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

使用Apps Script调用Google Drive API提取表格全部评论遇阻求助

解决Google Drive API获取所有Sheet评论的问题

问题根源

  1. 参数传递错误:原代码调用Drive.Comments.list时参数格式错误,pageSize=arg的写法不符合Apps Script语法,需直接传入包含pageSize的配置对象。
  2. 未处理分页逻辑:Drive API的comments.list默认分页返回,即便设置了pageSize,当评论总数超过设定值时,必须通过pageToken循环获取所有分页的评论。

修正后的代码

function listComments() {
  var sheetId = '(mySpreadsheetId)'; 
  var allComments = [];
  var pageToken = null;

  // 循环获取所有分页的评论
  do {
    var options = {
      pageSize: 100,
      pageToken: pageToken
    };
    var response = Drive.Comments.list(sheetId, options);
    if (response.items && response.items.length > 0) {
      allComments = allComments.concat(response.items);
    }
    pageToken = response.nextPageToken;
  } while (pageToken);

  // 整理评论内容
  var cList = [];
  for (var i = 0; i < allComments.length; i++) {
    cList.unshift([allComments[i].content]);
  }

  // 将评论写入指定工作表
  var commentsheet = SpreadsheetApp.openById(sheetId).getSheets()[11];
  if (cList.length > 0) {
    commentsheet.getRange("A1:A" + cList.length).setValues(cList);
  }

  Logger.log("共获取到 " + allComments.length + " 条评论");
}

关键修改说明

  • 修复参数传递:将pageSize正确放入配置对象,作为Drive.Comments.list的第二个参数传入。
  • 添加分页循环:通过nextPageToken判断是否存在下一页评论,循环调用API直至获取全部数据。
  • 优化数据处理:将所有分页的评论合并到一个数组后统一处理写入工作表,避免重复操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:10:06