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

如何使用page token导出Google Docs大量评论至Google Sheets

解决Google Docs评论导出至Sheets的分页问题

通俗理解Page Token

当调用Drive API获取评论时,若评论数量过多,API不会一次性返回所有结果,而是将数据拆分成「页」返回,每页最多100条(maxResults的上限)。每次请求后,API会返回一个nextPageToken——这是获取下一页数据的“通行证”。拿着这个令牌再次请求API,就能拿到下一页的评论,直到API返回的nextPageToken为空,就说明所有评论都已获取完毕。

修改后的完整代码

function listComments() {
  // 初始化变量
  var docId = '1h-BJrklSFgfGNCzdAWziNx5b5EDRjHHJ3DTkXHNhtUE'; 
  var sheet = SpreadsheetApp.openById('1XNJdSRMB1KR9_gpzbd6_rIC6WYpPoExuWkb12Nd1tRI').getSheetByName('Comments');
  
  var sList = [], hList = [], cList = [], nList = [], dList = [];
  var pageToken = null;

  // 循环获取所有分页的评论
  do {
    // 带上pageToken请求当前页的评论
    var comments = Drive.Comments.list(docId, {
      fields: "*",
      maxResults: 100,
      pageToken: pageToken
    });

    // 处理当前页的评论
    if (comments.items && comments.items.length > 0) {
      for (var i = 0; i < comments.items.length; i++) {
        var comment = comments.items[i]; 
        sList.unshift([comment.status]);
        hList.unshift([comment.context.value]);
        cList.unshift([comment.content]);
        nList.unshift([comment.author ? comment.author.displayName : '']);
        dList.unshift([comment.createdDate ? new Date(comment.createdDate).toLocaleString() : '']);
      }
    }

    // 更新pageToken为下一页的令牌,无令牌时循环结束
    pageToken = comments.nextPageToken;
  } while (pageToken);

  // 清空旧数据(避免残留)
  sheet.getRange("A2:E" + sheet.getLastRow()).clearContent();
  
  // 写入新数据到表格
  if (sList.length > 0) {
    sheet.getRange("A2:A" + (sList.length + 1)).setValues(sList);
    sheet.getRange("B2:B" + (hList.length + 1)).setValues(hList);
    sheet.getRange("C2:C" + (cList.length + 1)).setValues(cList);
    sheet.getRange("D2:D" + (nList.length + 1)).setValues(nList);
    sheet.getRange("E2:E" + (dList.length + 1)).setValues(dList);
  }
}

代码修改说明

  • 新增pageToken变量与do-while循环,持续请求直到所有分页数据获取完成
  • 每次请求时带上当前pageToken,确保能拿到下一页评论
  • 增加清空旧数据步骤,避免之前的评论残留
  • 保留原有的unshift倒序插入逻辑,若需要正序导出,将unshift替换为push即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 18:15:14