0

これが私の目標です。Googleドキュメントで、Google Scriptを実行して、ドキュメントのセクションに、いくつかの特定の名前のGoogleカレンダーからの今後のイベントを入力できるようにしたいと考えています。

これは可能ですか?

  1. ドキュメント内でスクリプトを実行できますか?ボタンまたはメニュー項目から?これを行う方法についてのドキュメントが見つかりません。

  2. スクリプトで、ドキュメントの特定のセクションをターゲットにして、新しいコンテンツに置き換えることはできますか?すべての要素にIDがありますか、それともターゲット要素にカスタム属性を追加できますか?

ありがとう。

編集:

私は#2を解決し、すべてを思い通りに実行しています。Google Script Editorから、特定のドキュメントをターゲットにして、目的のコンテンツを目的の場所にプッシュできます。

残っているのは、ドキュメントからスクリプトを実行できるように、それを任意のドキュメントにフックすることだけです。

編集:

#1の場合、答えはGoogleドキュメントがスクリプトをホストできないということのようです。しかし、私は一般的なスクリプトを作成することができ、そこから任意のドキュメントを開いて操作することができます。

4

2 に答える 2

1

ドキュメントから実行するために必要ですか?今後のイベントのリストをお探しですか?Webアプリとしてやってみませんか?これをHTMLテンプレートファイルと組み合わせて、イベントを含む文字列を作成した後、HTMLServiceを使用して最終結果を生成することができます。

于 2012-11-08T23:42:15.740 に答える
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();
}
于 2012-10-14T04:15:48.347 に答える