计算并打印谷歌文档中的标签数量

时间:2017-10-22 13:06:50

标签: google-apps-script google-docs

我有一个gDocs文档,其中包含许多标记,如:

[open]
[draft]
[completed]

我正在寻找一种在文档开头构建摘要的方法: 未清项目数:X 已完成项目数:Y

我想我应该使用正则表达式和谷歌应用程序脚本,但我真的不熟悉最新版本。

任何提示?

1 个答案:

答案 0 :(得分:0)

这会计算打开的代码。我猜你可以自己完成剩下的工作。

function countOpenTags() 
{
  var doc=DocumentApp.getActiveDocument();
  var body=doc.getBody();
  var text=body.getText();
  var opens=text.match(/\[open\]/g);
  return opens.length;
}

function displayTagCount()
{
  var s=Utilities.formatString('There are %s [open] tags in this document', countOpenTags());
  var ui=HtmlService.createHtmlOutput(s);
  DocumentApp.getUi().showModelessDialog(ui, 'Opens')
}

全部在一个对话框中。

function countMyTags(mode) 
{
  var mode=(typeof(mode)!='undefined')?mode:'open';
  var doc=DocumentApp.getActiveDocument();
  var body=doc.getBody();
  var text=body.getText();
  var tags=[];
  try{
    switch(mode)
    {
      case 'open':
        tags=text.match(/\[open\]/g);
        break;
      case 'draft':
        tags=text.match(/\[draft\]/g);
        break;
      case 'complete':
        tags=text.match(/\[complete\]/g);
        break;
    }
    return tags.length;
  }
  catch(e)
  {
    return 0;
  }
}

function displayTagCount()
{
  var s=Utilities.formatString('<br />[open]:%s<br />[draft]:%s<br />[complete]:%s<br /><script>function printDialog(){window.print();}</script><br /><input type="button" value="Print" onClick="printDialog();" /><br /><br /><input type="button" value="Close" onClick="google.script.host.close();" />', countMyTags(),countMyTags('draft'),countMyTags('complete'));
  var ui=HtmlService.createHtmlOutput(s);
  DocumentApp.getUi().showModelessDialog(ui, 'Tag Summary');
}