如何将 Google 文档上的 20 条以上评论导出到 Google 表格

问题描述 投票:0回答:1

我最近发布了一个关于我的程序的另一个问题的问题。以下是我原始帖子的链接:如何将 Google 文档评论导出到特定的 Google 表格单元格

此程序将特定 Google 文档上的评论导出到特定的 Google 工作表,您可以在一个位置查看所有评论。在我之前的问题获得帮助后,该程序似乎运行良好。

然而,随着更多人使用该程序,我们发现该代码只能导出最近的 20 条评论。过去 20 条之前写的任何评论都不会导出到 Google 表格。这个文件有超过 20 条评论,所以这个问题让我的项目陷入停滞。

我的程序的代码如下:

function onOpen() {
  const ui = DocumentApp.getUi();
  ui.createMenu('Custom Functions')
      .addItem('Export Comments to Google Sheets', 'listComments')
      .addToUi();
}

function listComments() {
  // Initialize Variables
  var docId = '1h-BJrklSFgfGNCzdAWziNx5b5EDRjHHJ3DTkXHNhtUE'; 
  var comments = Drive.Comments.list(docId);
  var sList = [], hList = [], cList = [], nList = [], dList = [];

  // Get list of comments
  if (comments.items && comments.items.length > 0) {
    for (var i = 0; i < comments.items.length; i++) {
      var comment = comments.items[i]; 
      // add comment and highlight to array's first element 
      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() : '']);
    }
    // Update spreadsheet values 
    var sheet = SpreadsheetApp.openById('1XNJdSRMB1KR9_gpzbd6_rIC6WYpPoExuWkb12Nd1tRI').getSheetByName('Comments');
    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);
  }
}

该程序的大部分内容是从旧帖子中复制并更新的,以满足我对该项目的需求:将 Google Docs 注释以及突出显示的文本导出到 Google Sheets 中?

注意:此程序要求您添加“Drive API (V2)”服务才能访问您的 Google Drive 文件。

我已经进行了一些故障排除以尝试找到问题,但我还没有找到导致仅提取最后 20 条评论的原因。我尝试删除评论并将其添加回来,但这没有任何效果。谁留下评论,或者谁运行程序似乎并不重要。

我在编码方面不是很熟练,但我在我的代码中找不到任何会导致仅导出 20 条评论的内容。我担心这个问题与 Google Docs 本身及其管理评论的方式有关。

我唯一能想到的就是将 Drive API 从版本 V2 更改为 V3。不幸的是,我无法在 V3 版本上正确运行代码。从 Apps 脚本页面运行代码时,它似乎运行成功,但没有提取任何注释。从 Google 文档页面本身的自定义菜单按钮运行代码时,我收到以下错误消息: GoogleJsonResponseException: API call todrive.comments.list failed with error: The 'fields'parameter is required for this method.

任何有关其他故障排除方法的想法将不胜感激!

google-sheets google-apps-script google-sheets-api google-docs google-docs-api
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.