有没有一种方法可以根据我突出显示的颜色自动将文本移动到Google文档的某些部分中?

时间:2019-09-27 15:14:03

标签: google-apps-script google-docs google-docs-api google-apps-script-addon google-apps-script-editor

所以让我们看看我是否可以正确解释这一点。

我使用Google文档来跟踪我的工作清单。当我添加需要立即注意的内容时,将以亮黄色突出显示该要点和任务说明。较小的任务,使用不同的颜色等。根据项目的类型,我将任务分为不同的标题下的不同列表(因此,我有一个“网站”的标题,然后是所有任务下的项目符号列表)需要进行与更新网站有关的操作,我有一个“视频”标题,并在下面列出了我需要为视频做的所有任务,等等。然后在每个部分中,根据优先级突出显示。

我的清单上有很多部分,如果我将给定部分中的任务突出显示为带有黄色的“最高优先级”,我会很喜欢它,它会自动复制并移动转到文档顶部的“优先级”标题下的部分,这样我就可以在一处看到所有要在所有项目中完成的高优先级任务,而不必浏览文档中的每个部分,可能会丢失一些东西。

这有可能吗?我听说过Google Apps脚本,但从未真正涉足其中。我具有基本的编码知识,通常可以找到解决HTML,Javascript等问题的方法。

像这样可能吗?那我该怎么办?

1 个答案:

答案 0 :(得分:0)

布伦达。

您可能会从以下内容开始:

var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var lists = body.getListItems();

var childIndex = 0;
for (var i = 0; i < doc.getNumChildren(); i++) {
    var child = doc.getChild(i);
    if (child.getType() == DocumentApp.ElementType.LIST_ITEM){
      while(child.getType() == DocumentApp.ElementType.LIST_ITEM){
        child = doc.getChild(i)
        childIndex = body.getChildIndex(child);
        Logger.log(childIndex)
        i++
      }
      child = doc.getChild(i-2)
      var listId = child.getListId();
      Logger.log(childIndex)

      // You'll want to do something like...
      // if child.getBackgroundColor() == "Yellow"...

        // Here you can add an element to your "Priorities" list as well:
        // var newElement = child.getParent().insertListItem(childIndex, elementContent);
        // newElement.setListId(child);
      break;
    }
}

这里是一个很好的参考:https://stackoverflow.com/a/20729760/5415398

另一个:https://stackoverflow.com/a/26419644/5415398

您在这里获取文档,文档的主体以及其中包含的所有列表。您可以直接使用“ lists”变量,也可以循环遍历文档的所有子级,对于LIST_ITEM的任何子级,都可以根据需要进行处理。

您将尝试使用“ .getBackgroundColor()”功能捕获列表项的突出显示,如果满足您的条件,则将其添加到优先级列表中。

(注意:此答案可以并且应该完善以完整。)