Google文档脚本可以从两个日历中插入即将发生的事件列表

时间:2012-10-13 23:06:59

标签: google-apps-script google-docs

以下是我的目标:在Google文档中,我希望能够运行Google脚本,使用来自几个特定Google日历的即将发生的事件来填充文档的一部分。

这可能吗?

  1. 我可以在文档中运行脚本吗?从按钮或菜单项?我还没有找到有关如何执行此操作的文档。

  2. 在脚本中,我可以定位要用新内容替换的文档的特定部分吗?每个元素上都有ID,或者我可以向目标元素添加自定义属性吗?

  3. 感谢。

    修改

    我已经解决了#2并且按照我的意愿运行了所有内容。通过Google Script编辑器,我可以定位特定文档并将所需内容推送到所需位置。

    剩下的就是将它挂钩到任何文档中,以便我可以从文档中运行脚本。

    修改

    对于#1,看起来答案是Google文档无法托管脚本。但我可以制作一个通用的脚本,从中我可以打开并操纵我的任何文档。

2 个答案:

答案 0 :(得分:1)

你需要它从文件运行吗?您正在寻找即将举办的活动清单?为什么不把它作为一个网络应用程序?您可以将其与HTML模板文件配对,并在使用事件构建字符串后使用HTMLService生成最终结果。

答案 1 :(得分:0)

对于#2,我搜索文档中的表格,在表格的第一个单元格中查找特定文本。所以这个例程让我得到了我需要更新的表格:

var targetFirstCellText = 'Date';

function findTableInDoc(docId){
  var doc = DocumentApp.openById(docId);
  var tables = doc.getTables();
  var table = null;
  var found = false;
  for(var t=0;!found && t<tables.length;t++){
    table = tables[t];
    var firstCellText = table.getCell(0,0).getText();
    if(firstCellText==targetFirstCellText){
      found = true;
    }
  }
  return table;
}

然后,在我开始添加新行之前,我运行它。 (可以通过其他方式完成......这很快捷。)

while(table.getNumRows()>1){
  table.getRow(1).removeFromParent();
}